diff --git a/packages/actions/artifacts/build-info/98e7adc4ae6272c772cd9568997f96ea.json b/packages/actions/artifacts/build-info/98e7adc4ae6272c772cd9568997f96ea.json deleted file mode 100644 index e8584436..00000000 --- a/packages/actions/artifacts/build-info/98e7adc4ae6272c772cd9568997f96ea.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"98e7adc4ae6272c772cd9568997f96ea","_format":"hh-sol-build-info-1","solcVersion":"0.8.10","solcLongVersion":"0.8.10+commit.fc410830","input":{"language":"Solidity","sources":{"contracts/mocks/mockVerifier.sol":{"content":"//\n// Copyright 2017 Christian Reitwiessner\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n// 2019 OKIMS\n// ported to solidity 0.6\n// fixed linter warnings\n// added requiere error messages\n//\n//\n// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.10;\nlibrary Pairing {\n struct G1Point {\n uint X;\n uint Y;\n }\n // Encoding of field elements is: X[0] * z + X[1]\n struct G2Point {\n uint[2] X;\n uint[2] Y;\n }\n /// @return the generator of G1\n function P1() internal pure returns (G1Point memory) {\n return G1Point(1, 2);\n }\n /// @return the generator of G2\n function P2() internal pure returns (G2Point memory) {\n // Original code point\n return G2Point(\n [11559732032986387107991004021392285783925812861821192530917403151452391805634,\n 10857046999023057135944570762232829481370756359578518086990519993285655852781],\n [4082367875863433681332203403145435568316851327593401208105741076214120093531,\n 8495653923123431417604973247489272438418190587263600148770280649306958101930]\n );\n\n/*\n // Changed by Jordi point\n return G2Point(\n [10857046999023057135944570762232829481370756359578518086990519993285655852781,\n 11559732032986387107991004021392285783925812861821192530917403151452391805634],\n [8495653923123431417604973247489272438418190587263600148770280649306958101930,\n 4082367875863433681332203403145435568316851327593401208105741076214120093531]\n );\n*/\n }\n /// @return r the negation of p, i.e. p.addition(p.negate()) should be zero.\n function negate(G1Point memory p) internal pure returns (G1Point memory r) {\n // The prime q in the base field F_q for G1\n uint q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n if (p.X == 0 && p.Y == 0)\n return G1Point(0, 0);\n return G1Point(p.X, q - (p.Y % q));\n }\n /// @return r the sum of two points of G1\n function addition(G1Point memory p1, G1Point memory p2) internal view returns (G1Point memory r) {\n uint[4] memory input;\n input[0] = p1.X;\n input[1] = p1.Y;\n input[2] = p2.X;\n input[3] = p2.Y;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas(), 2000), 6, input, 0xc0, r, 0x60)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require(success,\"pairing-add-failed\");\n }\n /// @return r the product of a point on G1 and a scalar, i.e.\n /// p == p.scalar_mul(1) and p.addition(p) == p.scalar_mul(2) for all points p.\n function scalar_mul(G1Point memory p, uint s) internal view returns (G1Point memory r) {\n uint[3] memory input;\n input[0] = p.X;\n input[1] = p.Y;\n input[2] = s;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas(), 2000), 7, input, 0x80, r, 0x60)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require (success,\"pairing-mul-failed\");\n }\n /// @return the result of computing the pairing check\n /// e(p1[0], p2[0]) * .... * e(p1[n], p2[n]) == 1\n /// For example pairing([P1(), P1().negate()], [P2(), P2()]) should\n /// return true.\n function pairing(G1Point[] memory p1, G2Point[] memory p2) internal view returns (bool) {\n require(p1.length == p2.length,\"pairing-lengths-failed\");\n uint elements = p1.length;\n uint inputSize = elements * 6;\n uint[] memory input = new uint[](inputSize);\n for (uint i = 0; i < elements; i++)\n {\n input[i * 6 + 0] = p1[i].X;\n input[i * 6 + 1] = p1[i].Y;\n input[i * 6 + 2] = p2[i].X[0];\n input[i * 6 + 3] = p2[i].X[1];\n input[i * 6 + 4] = p2[i].Y[0];\n input[i * 6 + 5] = p2[i].Y[1];\n }\n uint[1] memory out;\n bool success;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := staticcall(sub(gas(), 2000), 8, add(input, 0x20), mul(inputSize, 0x20), out, 0x20)\n // Use \"invalid\" to make gas estimation work\n switch success case 0 { invalid() }\n }\n require(success,\"pairing-opcode-failed\");\n return out[0] != 0;\n }\n /// Convenience method for a pairing check for two pairs.\n function pairingProd2(G1Point memory a1, G2Point memory a2, G1Point memory b1, G2Point memory b2) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](2);\n G2Point[] memory p2 = new G2Point[](2);\n p1[0] = a1;\n p1[1] = b1;\n p2[0] = a2;\n p2[1] = b2;\n return pairing(p1, p2);\n }\n /// Convenience method for a pairing check for three pairs.\n function pairingProd3(\n G1Point memory a1, G2Point memory a2,\n G1Point memory b1, G2Point memory b2,\n G1Point memory c1, G2Point memory c2\n ) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](3);\n G2Point[] memory p2 = new G2Point[](3);\n p1[0] = a1;\n p1[1] = b1;\n p1[2] = c1;\n p2[0] = a2;\n p2[1] = b2;\n p2[2] = c2;\n return pairing(p1, p2);\n }\n /// Convenience method for a pairing check for four pairs.\n function pairingProd4(\n G1Point memory a1, G2Point memory a2,\n G1Point memory b1, G2Point memory b2,\n G1Point memory c1, G2Point memory c2,\n G1Point memory d1, G2Point memory d2\n ) internal view returns (bool) {\n G1Point[] memory p1 = new G1Point[](4);\n G2Point[] memory p2 = new G2Point[](4);\n p1[0] = a1;\n p1[1] = b1;\n p1[2] = c1;\n p1[3] = d1;\n p2[0] = a2;\n p2[1] = b2;\n p2[2] = c2;\n p2[3] = d2;\n return pairing(p1, p2);\n }\n}\ncontract MockVerifier {\n using Pairing for *;\n struct VerifyingKey {\n Pairing.G1Point alfa1;\n Pairing.G2Point beta2;\n Pairing.G2Point gamma2;\n Pairing.G2Point delta2;\n Pairing.G1Point[] IC;\n }\n struct Proof {\n Pairing.G1Point A;\n Pairing.G2Point B;\n Pairing.G1Point C;\n }\n function verifyingKey() internal pure returns (VerifyingKey memory vk) {\n vk.alfa1 = Pairing.G1Point(\n 20491192805390485299153009773594534940189261866228447918068658471970481763042,\n 9383485363053290200918347156157836566562967994039712273449902621266178545958\n );\n\n vk.beta2 = Pairing.G2Point(\n [4252822878758300859123897981450591353533073413197771768651442665752259397132,\n 6375614351688725206403948262868962793625744043794305715222011528459656738731],\n [21847035105528745403288232691147584728191162732299865338377159692350059136679,\n 10505242626370262277552901082094356697409835680220590971873171140371331206856]\n );\n vk.gamma2 = Pairing.G2Point(\n [11559732032986387107991004021392285783925812861821192530917403151452391805634,\n 10857046999023057135944570762232829481370756359578518086990519993285655852781],\n [4082367875863433681332203403145435568316851327593401208105741076214120093531,\n 8495653923123431417604973247489272438418190587263600148770280649306958101930]\n );\n vk.delta2 = Pairing.G2Point(\n [11559732032986387107991004021392285783925812861821192530917403151452391805634,\n 10857046999023057135944570762232829481370756359578518086990519993285655852781],\n [4082367875863433681332203403145435568316851327593401208105741076214120093531,\n 8495653923123431417604973247489272438418190587263600148770280649306958101930]\n );\n vk.IC = new Pairing.G1Point[](3);\n \n vk.IC[0] = Pairing.G1Point( \n 6819801395408938350212900248749732364821477541620635511814266536599629892365,\n 9092252330033992554755034971584864587974280972948086568597554018278609861372\n ); \n \n vk.IC[1] = Pairing.G1Point( \n 2494923446058214646639418591712156421366388762181821637289531085843728324281,\n 5725178132428480568821403146496952551332721127066178100464798546821141271312\n ); \n \n vk.IC[2] = Pairing.G1Point( \n 2949088342211450078770029559615904525423143982944239450257777566971809628121,\n 14382936099891824927341970188446629554258856083543365916396703111259580806134\n ); \n \n }\n function verify(uint[] memory input, Proof memory proof) internal view returns (uint) {\n uint256 snark_scalar_field = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n VerifyingKey memory vk = verifyingKey();\n require(input.length + 1 == vk.IC.length,\"verifier-bad-input\");\n // Compute the linear combination vk_x\n Pairing.G1Point memory vk_x = Pairing.G1Point(0, 0);\n for (uint i = 0; i < input.length; i++) {\n require(input[i] < snark_scalar_field,\"verifier-gte-snark-scalar-field\");\n vk_x = Pairing.addition(vk_x, Pairing.scalar_mul(vk.IC[i + 1], input[i]));\n }\n vk_x = Pairing.addition(vk_x, vk.IC[0]);\n if (!Pairing.pairingProd4(\n Pairing.negate(proof.A), proof.B,\n vk.alfa1, vk.beta2,\n vk_x, vk.gamma2,\n proof.C, vk.delta2\n )) return 1;\n return 0;\n }\n /// @return r bool true if proof is valid\n function verifyProof(\n uint[2] memory a,\n uint[2][2] memory b,\n uint[2] memory c,\n uint[2] memory input\n ) public view returns (bool r) {\n Proof memory proof;\n proof.A = Pairing.G1Point(a[0], a[1]);\n proof.B = Pairing.G2Point([b[0][0], b[0][1]], [b[1][0], b[1][1]]);\n proof.C = Pairing.G1Point(c[0], c[1]);\n uint[] memory inputValues = new uint[](input.length);\n for(uint i = 0; i < input.length; i++){\n inputValues[i] = input[i];\n }\n if (verify(inputValues, proof) == 0) {\n return true;\n } else {\n return false;\n }\n }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"contracts/mocks/mockVerifier.sol":{"ast":{"absolutePath":"contracts/mocks/mockVerifier.sol","exportedSymbols":{"MockVerifier":[1024],"Pairing":[631]},"id":1025,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".10"],"nodeType":"PragmaDirective","src":"1232:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"Pairing","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":631,"linearizedBaseContracts":[631],"name":"Pairing","nameLocation":"1265:7:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Pairing.G1Point","id":6,"members":[{"constant":false,"id":3,"mutability":"mutable","name":"X","nameLocation":"1309:1:0","nodeType":"VariableDeclaration","scope":6,"src":"1304:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2,"name":"uint","nodeType":"ElementaryTypeName","src":"1304:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5,"mutability":"mutable","name":"Y","nameLocation":"1325:1:0","nodeType":"VariableDeclaration","scope":6,"src":"1320:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4,"name":"uint","nodeType":"ElementaryTypeName","src":"1320:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"G1Point","nameLocation":"1286:7:0","nodeType":"StructDefinition","scope":631,"src":"1279:54:0","visibility":"public"},{"canonicalName":"Pairing.G2Point","id":15,"members":[{"constant":false,"id":10,"mutability":"mutable","name":"X","nameLocation":"1425:1:0","nodeType":"VariableDeclaration","scope":15,"src":"1417:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":7,"name":"uint","nodeType":"ElementaryTypeName","src":"1417:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9,"length":{"hexValue":"32","id":8,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1422:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"1417:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"visibility":"internal"},{"constant":false,"id":14,"mutability":"mutable","name":"Y","nameLocation":"1444:1:0","nodeType":"VariableDeclaration","scope":15,"src":"1436:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":11,"name":"uint","nodeType":"ElementaryTypeName","src":"1436:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13,"length":{"hexValue":"32","id":12,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1441:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"1436:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"visibility":"internal"}],"name":"G2Point","nameLocation":"1399:7:0","nodeType":"StructDefinition","scope":631,"src":"1392:60:0","visibility":"public"},{"body":{"id":27,"nodeType":"Block","src":"1546:37:0","statements":[{"expression":{"arguments":[{"hexValue":"31","id":23,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1571:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"32","id":24,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1574:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":22,"name":"G1Point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6,"src":"1563:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G1Point_$6_storage_ptr_$","typeString":"type(struct Pairing.G1Point storage pointer)"}},"id":25,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1563:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"functionReturnParameters":21,"id":26,"nodeType":"Return","src":"1556:20:0"}]},"documentation":{"id":16,"nodeType":"StructuredDocumentation","src":"1457:31:0","text":"@return the generator of G1"},"id":28,"implemented":true,"kind":"function","modifiers":[],"name":"P1","nameLocation":"1502:2:0","nodeType":"FunctionDefinition","parameters":{"id":17,"nodeType":"ParameterList","parameters":[],"src":"1504:2:0"},"returnParameters":{"id":21,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28,"src":"1530:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":19,"nodeType":"UserDefinedTypeName","pathNode":{"id":18,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"1530:7:0"},"referencedDeclaration":6,"src":"1530:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"}],"src":"1529:16:0"},"scope":631,"src":"1493:90:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":44,"nodeType":"Block","src":"1677:883:0","statements":[{"expression":{"arguments":[{"components":[{"hexValue":"3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334","id":36,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1747:77:0","typeDescriptions":{"typeIdentifier":"t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1","typeString":"int_const 1155...(69 digits omitted)...5634"},"value":"11559732032986387107991004021392285783925812861821192530917403151452391805634"},{"hexValue":"3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831","id":37,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1839:77:0","typeDescriptions":{"typeIdentifier":"t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1","typeString":"int_const 1085...(69 digits omitted)...2781"},"value":"10857046999023057135944570762232829481370756359578518086990519993285655852781"}],"id":38,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1746:171:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},{"components":[{"hexValue":"34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331","id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1932:76:0","typeDescriptions":{"typeIdentifier":"t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1","typeString":"int_const 4082...(68 digits omitted)...3531"},"value":"4082367875863433681332203403145435568316851327593401208105741076214120093531"},{"hexValue":"38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330","id":40,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2023:76:0","typeDescriptions":{"typeIdentifier":"t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1","typeString":"int_const 8495...(68 digits omitted)...1930"},"value":"8495653923123431417604973247489272438418190587263600148770280649306958101930"}],"id":41,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1931:169:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"},{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}],"id":35,"name":"G2Point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15,"src":"1725:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G2Point_$15_storage_ptr_$","typeString":"type(struct Pairing.G2Point storage pointer)"}},"id":42,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1725:385:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"functionReturnParameters":34,"id":43,"nodeType":"Return","src":"1718:392:0"}]},"documentation":{"id":29,"nodeType":"StructuredDocumentation","src":"1588:31:0","text":"@return the generator of G2"},"id":45,"implemented":true,"kind":"function","modifiers":[],"name":"P2","nameLocation":"1633:2:0","nodeType":"FunctionDefinition","parameters":{"id":30,"nodeType":"ParameterList","parameters":[],"src":"1635:2:0"},"returnParameters":{"id":34,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":45,"src":"1661:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":32,"nodeType":"UserDefinedTypeName","pathNode":{"id":31,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"1661:7:0"},"referencedDeclaration":15,"src":"1661:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"}],"src":"1660:16:0"},"scope":631,"src":"1624:936:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":86,"nodeType":"Block","src":"2721:267:0","statements":[{"assignments":[56],"declarations":[{"constant":false,"id":56,"mutability":"mutable","name":"q","nameLocation":"2788:1:0","nodeType":"VariableDeclaration","scope":86,"src":"2783:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55,"name":"uint","nodeType":"ElementaryTypeName","src":"2783:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58,"initialValue":{"hexValue":"3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833","id":57,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2792:77:0","typeDescriptions":{"typeIdentifier":"t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1","typeString":"int_const 2188...(69 digits omitted)...8583"},"value":"21888242871839275222246405745257275088696311157297823662689037894645226208583"},"nodeType":"VariableDeclarationStatement","src":"2783:86:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":67,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":59,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49,"src":"2883:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":60,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"X","nodeType":"MemberAccess","referencedDeclaration":3,"src":"2883:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":61,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2890:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2883:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":66,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":63,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49,"src":"2895:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":64,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"Y","nodeType":"MemberAccess","referencedDeclaration":5,"src":"2895:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":65,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2902:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2895:8:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2883:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73,"nodeType":"IfStatement","src":"2879:58:0","trueBody":{"expression":{"arguments":[{"hexValue":"30","id":69,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2932:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":70,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2935:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":68,"name":"G1Point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6,"src":"2924:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G1Point_$6_storage_ptr_$","typeString":"type(struct Pairing.G1Point storage pointer)"}},"id":71,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2924:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"functionReturnParameters":54,"id":72,"nodeType":"Return","src":"2917:20:0"}},{"expression":{"arguments":[{"expression":{"id":75,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49,"src":"2962:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":76,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"X","nodeType":"MemberAccess","referencedDeclaration":3,"src":"2962:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"2967:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49,"src":"2972:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":79,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"Y","nodeType":"MemberAccess","referencedDeclaration":5,"src":"2972:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":80,"name":"q","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"2978:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2972:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":82,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2971:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2967:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74,"name":"G1Point","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6,"src":"2954:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G1Point_$6_storage_ptr_$","typeString":"type(struct Pairing.G1Point storage pointer)"}},"id":84,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2954:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"functionReturnParameters":54,"id":85,"nodeType":"Return","src":"2947:34:0"}]},"documentation":{"id":46,"nodeType":"StructuredDocumentation","src":"2565:76:0","text":"@return r the negation of p, i.e. p.addition(p.negate()) should be zero."},"id":87,"implemented":true,"kind":"function","modifiers":[],"name":"negate","nameLocation":"2655:6:0","nodeType":"FunctionDefinition","parameters":{"id":50,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49,"mutability":"mutable","name":"p","nameLocation":"2677:1:0","nodeType":"VariableDeclaration","scope":87,"src":"2662:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":48,"nodeType":"UserDefinedTypeName","pathNode":{"id":47,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"2662:7:0"},"referencedDeclaration":6,"src":"2662:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"}],"src":"2661:18:0"},"returnParameters":{"id":54,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53,"mutability":"mutable","name":"r","nameLocation":"2718:1:0","nodeType":"VariableDeclaration","scope":87,"src":"2703:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":52,"nodeType":"UserDefinedTypeName","pathNode":{"id":51,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"2703:7:0"},"referencedDeclaration":6,"src":"2703:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"}],"src":"2702:18:0"},"scope":631,"src":"2646:342:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":144,"nodeType":"Block","src":"3136:481:0","statements":[{"assignments":[105],"declarations":[{"constant":false,"id":105,"mutability":"mutable","name":"input","nameLocation":"3161:5:0","nodeType":"VariableDeclaration","scope":144,"src":"3146:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4]"},"typeName":{"baseType":{"id":103,"name":"uint","nodeType":"ElementaryTypeName","src":"3146:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":104,"length":{"hexValue":"34","id":102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3151:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"3146:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"}},"visibility":"internal"}],"id":106,"nodeType":"VariableDeclarationStatement","src":"3146:20:0"},{"expression":{"id":112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":107,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105,"src":"3176:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}},"id":109,"indexExpression":{"hexValue":"30","id":108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3182:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3176:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":110,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91,"src":"3187:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"X","nodeType":"MemberAccess","referencedDeclaration":3,"src":"3187:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3176:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":113,"nodeType":"ExpressionStatement","src":"3176:15:0"},{"expression":{"id":119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":114,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105,"src":"3201:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}},"id":116,"indexExpression":{"hexValue":"31","id":115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3207:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3201:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":117,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91,"src":"3212:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"Y","nodeType":"MemberAccess","referencedDeclaration":5,"src":"3212:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3201:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":120,"nodeType":"ExpressionStatement","src":"3201:15:0"},{"expression":{"id":126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":121,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105,"src":"3226:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}},"id":123,"indexExpression":{"hexValue":"32","id":122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3232:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3226:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":124,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94,"src":"3237:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"X","nodeType":"MemberAccess","referencedDeclaration":3,"src":"3237:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3226:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":127,"nodeType":"ExpressionStatement","src":"3226:15:0"},{"expression":{"id":133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":128,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105,"src":"3251:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}},"id":130,"indexExpression":{"hexValue":"33","id":129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3257:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3251:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":131,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94,"src":"3262:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"Y","nodeType":"MemberAccess","referencedDeclaration":5,"src":"3262:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3251:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":134,"nodeType":"ExpressionStatement","src":"3251:15:0"},{"assignments":[136],"declarations":[{"constant":false,"id":136,"mutability":"mutable","name":"success","nameLocation":"3281:7:0","nodeType":"VariableDeclaration","scope":144,"src":"3276:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":135,"name":"bool","nodeType":"ElementaryTypeName","src":"3276:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":137,"nodeType":"VariableDeclarationStatement","src":"3276:12:0"},{"AST":{"nodeType":"YulBlock","src":"3371:193:0","statements":[{"nodeType":"YulAssignment","src":"3385:64:0","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"3411:3:0"},"nodeType":"YulFunctionCall","src":"3411:5:0"},{"kind":"number","nodeType":"YulLiteral","src":"3418:4:0","type":"","value":"2000"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3407:3:0"},"nodeType":"YulFunctionCall","src":"3407:16:0"},{"kind":"number","nodeType":"YulLiteral","src":"3425:1:0","type":"","value":"6"},{"name":"input","nodeType":"YulIdentifier","src":"3428:5:0"},{"kind":"number","nodeType":"YulLiteral","src":"3435:4:0","type":"","value":"0xc0"},{"name":"r","nodeType":"YulIdentifier","src":"3441:1:0"},{"kind":"number","nodeType":"YulLiteral","src":"3444:4:0","type":"","value":"0x60"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"3396:10:0"},"nodeType":"YulFunctionCall","src":"3396:53:0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"3385:7:0"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3541:13:0","statements":[{"expression":{"arguments":[],"functionName":{"name":"invalid","nodeType":"YulIdentifier","src":"3543:7:0"},"nodeType":"YulFunctionCall","src":"3543:9:0"},"nodeType":"YulExpressionStatement","src":"3543:9:0"}]},"nodeType":"YulCase","src":"3534:20:0","value":{"kind":"number","nodeType":"YulLiteral","src":"3539:1:0","type":"","value":"0"}}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"3526:7:0"},"nodeType":"YulSwitch","src":"3519:35:0"}]},"evmVersion":"london","externalReferences":[{"declaration":105,"isOffset":false,"isSlot":false,"src":"3428:5:0","valueSize":1},{"declaration":98,"isOffset":false,"isSlot":false,"src":"3441:1:0","valueSize":1},{"declaration":136,"isOffset":false,"isSlot":false,"src":"3385:7:0","valueSize":1},{"declaration":136,"isOffset":false,"isSlot":false,"src":"3526:7:0","valueSize":1}],"id":138,"nodeType":"InlineAssembly","src":"3362:202:0"},{"expression":{"arguments":[{"id":140,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":136,"src":"3581:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70616972696e672d6164642d6661696c6564","id":141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3589:20:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_e428a53e578d13ee2fc3b8849114332d6a94afed893fa747a37e281039728688","typeString":"literal_string \"pairing-add-failed\""},"value":"pairing-add-failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e428a53e578d13ee2fc3b8849114332d6a94afed893fa747a37e281039728688","typeString":"literal_string \"pairing-add-failed\""}],"id":139,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3573:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3573:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":143,"nodeType":"ExpressionStatement","src":"3573:37:0"}]},"documentation":{"id":88,"nodeType":"StructuredDocumentation","src":"2993:41:0","text":"@return r the sum of two points of G1"},"id":145,"implemented":true,"kind":"function","modifiers":[],"name":"addition","nameLocation":"3048:8:0","nodeType":"FunctionDefinition","parameters":{"id":95,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91,"mutability":"mutable","name":"p1","nameLocation":"3072:2:0","nodeType":"VariableDeclaration","scope":145,"src":"3057:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":90,"nodeType":"UserDefinedTypeName","pathNode":{"id":89,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"3057:7:0"},"referencedDeclaration":6,"src":"3057:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":94,"mutability":"mutable","name":"p2","nameLocation":"3091:2:0","nodeType":"VariableDeclaration","scope":145,"src":"3076:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":93,"nodeType":"UserDefinedTypeName","pathNode":{"id":92,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"3076:7:0"},"referencedDeclaration":6,"src":"3076:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"}],"src":"3056:38:0"},"returnParameters":{"id":99,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98,"mutability":"mutable","name":"r","nameLocation":"3133:1:0","nodeType":"VariableDeclaration","scope":145,"src":"3118:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":97,"nodeType":"UserDefinedTypeName","pathNode":{"id":96,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"3118:7:0"},"referencedDeclaration":6,"src":"3118:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"}],"src":"3117:18:0"},"scope":631,"src":"3039:578:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":193,"nodeType":"Block","src":"3859:452:0","statements":[{"assignments":[162],"declarations":[{"constant":false,"id":162,"mutability":"mutable","name":"input","nameLocation":"3884:5:0","nodeType":"VariableDeclaration","scope":193,"src":"3869:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":160,"name":"uint","nodeType":"ElementaryTypeName","src":"3869:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":161,"length":{"hexValue":"33","id":159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3874:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"3869:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"visibility":"internal"}],"id":163,"nodeType":"VariableDeclarationStatement","src":"3869:20:0"},{"expression":{"id":169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":164,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"3899:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":166,"indexExpression":{"hexValue":"30","id":165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3905:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3899:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":167,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"3910:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"X","nodeType":"MemberAccess","referencedDeclaration":3,"src":"3910:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3899:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":170,"nodeType":"ExpressionStatement","src":"3899:14:0"},{"expression":{"id":176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":171,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"3923:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":173,"indexExpression":{"hexValue":"31","id":172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3929:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3923:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":174,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"3934:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"Y","nodeType":"MemberAccess","referencedDeclaration":5,"src":"3934:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3923:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":177,"nodeType":"ExpressionStatement","src":"3923:14:0"},{"expression":{"id":182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":178,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"3947:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":180,"indexExpression":{"hexValue":"32","id":179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3953:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3947:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":181,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151,"src":"3958:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3947:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":183,"nodeType":"ExpressionStatement","src":"3947:12:0"},{"assignments":[185],"declarations":[{"constant":false,"id":185,"mutability":"mutable","name":"success","nameLocation":"3974:7:0","nodeType":"VariableDeclaration","scope":193,"src":"3969:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":184,"name":"bool","nodeType":"ElementaryTypeName","src":"3969:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":186,"nodeType":"VariableDeclarationStatement","src":"3969:12:0"},{"AST":{"nodeType":"YulBlock","src":"4064:193:0","statements":[{"nodeType":"YulAssignment","src":"4078:64:0","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"4104:3:0"},"nodeType":"YulFunctionCall","src":"4104:5:0"},{"kind":"number","nodeType":"YulLiteral","src":"4111:4:0","type":"","value":"2000"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4100:3:0"},"nodeType":"YulFunctionCall","src":"4100:16:0"},{"kind":"number","nodeType":"YulLiteral","src":"4118:1:0","type":"","value":"7"},{"name":"input","nodeType":"YulIdentifier","src":"4121:5:0"},{"kind":"number","nodeType":"YulLiteral","src":"4128:4:0","type":"","value":"0x80"},{"name":"r","nodeType":"YulIdentifier","src":"4134:1:0"},{"kind":"number","nodeType":"YulLiteral","src":"4137:4:0","type":"","value":"0x60"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"4089:10:0"},"nodeType":"YulFunctionCall","src":"4089:53:0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"4078:7:0"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"4234:13:0","statements":[{"expression":{"arguments":[],"functionName":{"name":"invalid","nodeType":"YulIdentifier","src":"4236:7:0"},"nodeType":"YulFunctionCall","src":"4236:9:0"},"nodeType":"YulExpressionStatement","src":"4236:9:0"}]},"nodeType":"YulCase","src":"4227:20:0","value":{"kind":"number","nodeType":"YulLiteral","src":"4232:1:0","type":"","value":"0"}}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"4219:7:0"},"nodeType":"YulSwitch","src":"4212:35:0"}]},"evmVersion":"london","externalReferences":[{"declaration":162,"isOffset":false,"isSlot":false,"src":"4121:5:0","valueSize":1},{"declaration":155,"isOffset":false,"isSlot":false,"src":"4134:1:0","valueSize":1},{"declaration":185,"isOffset":false,"isSlot":false,"src":"4078:7:0","valueSize":1},{"declaration":185,"isOffset":false,"isSlot":false,"src":"4219:7:0","valueSize":1}],"id":187,"nodeType":"InlineAssembly","src":"4055:202:0"},{"expression":{"arguments":[{"id":189,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"4275:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70616972696e672d6d756c2d6661696c6564","id":190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4283:20:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_63b4943691e0891cf5adcfe6e3eb490783b718accceadc0166bc4e56cf1df5de","typeString":"literal_string \"pairing-mul-failed\""},"value":"pairing-mul-failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_63b4943691e0891cf5adcfe6e3eb490783b718accceadc0166bc4e56cf1df5de","typeString":"literal_string \"pairing-mul-failed\""}],"id":188,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4266:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4266:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":192,"nodeType":"ExpressionStatement","src":"4266:38:0"}]},"documentation":{"id":146,"nodeType":"StructuredDocumentation","src":"3622:145:0","text":"@return r the product of a point on G1 and a scalar, i.e.\n p == p.scalar_mul(1) and p.addition(p) == p.scalar_mul(2) for all points p."},"id":194,"implemented":true,"kind":"function","modifiers":[],"name":"scalar_mul","nameLocation":"3781:10:0","nodeType":"FunctionDefinition","parameters":{"id":152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":149,"mutability":"mutable","name":"p","nameLocation":"3807:1:0","nodeType":"VariableDeclaration","scope":194,"src":"3792:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":148,"nodeType":"UserDefinedTypeName","pathNode":{"id":147,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"3792:7:0"},"referencedDeclaration":6,"src":"3792:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":151,"mutability":"mutable","name":"s","nameLocation":"3815:1:0","nodeType":"VariableDeclaration","scope":194,"src":"3810:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":150,"name":"uint","nodeType":"ElementaryTypeName","src":"3810:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3791:26:0"},"returnParameters":{"id":156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":155,"mutability":"mutable","name":"r","nameLocation":"3856:1:0","nodeType":"VariableDeclaration","scope":194,"src":"3841:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":154,"nodeType":"UserDefinedTypeName","pathNode":{"id":153,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"3841:7:0"},"referencedDeclaration":6,"src":"3841:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"}],"src":"3840:18:0"},"scope":631,"src":"3772:539:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":359,"nodeType":"Block","src":"4610:948:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":209,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"4628:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4628:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":211,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":203,"src":"4641:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4641:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4628:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70616972696e672d6c656e677468732d6661696c6564","id":214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4651:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4c505601ed3bad1341fbb75434dd6541f91bae974d0b2bc28d5491a5c4a21cc","typeString":"literal_string \"pairing-lengths-failed\""},"value":"pairing-lengths-failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d4c505601ed3bad1341fbb75434dd6541f91bae974d0b2bc28d5491a5c4a21cc","typeString":"literal_string \"pairing-lengths-failed\""}],"id":208,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4620:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4620:56:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":216,"nodeType":"ExpressionStatement","src":"4620:56:0"},{"assignments":[218],"declarations":[{"constant":false,"id":218,"mutability":"mutable","name":"elements","nameLocation":"4691:8:0","nodeType":"VariableDeclaration","scope":359,"src":"4686:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":217,"name":"uint","nodeType":"ElementaryTypeName","src":"4686:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":221,"initialValue":{"expression":{"id":219,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"4702:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4702:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4686:25:0"},{"assignments":[223],"declarations":[{"constant":false,"id":223,"mutability":"mutable","name":"inputSize","nameLocation":"4726:9:0","nodeType":"VariableDeclaration","scope":359,"src":"4721:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":222,"name":"uint","nodeType":"ElementaryTypeName","src":"4721:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":227,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":224,"name":"elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"4738:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"36","id":225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4749:1:0","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"4738:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4721:29:0"},{"assignments":[232],"declarations":[{"constant":false,"id":232,"mutability":"mutable","name":"input","nameLocation":"4774:5:0","nodeType":"VariableDeclaration","scope":359,"src":"4760:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":230,"name":"uint","nodeType":"ElementaryTypeName","src":"4760:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":231,"nodeType":"ArrayTypeName","src":"4760:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":238,"initialValue":{"arguments":[{"id":236,"name":"inputSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"4793:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4782:10:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":233,"name":"uint","nodeType":"ElementaryTypeName","src":"4786:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":234,"nodeType":"ArrayTypeName","src":"4786:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4782:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4760:43:0"},{"body":{"id":335,"nodeType":"Block","src":"4857:263:0","statements":[{"expression":{"id":260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":249,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"4871:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":255,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":250,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"4877:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"36","id":251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4881:1:0","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"4877:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30","id":253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4885:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4877:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4871:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":256,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"4890:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":258,"indexExpression":{"id":257,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"4893:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4890:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"X","nodeType":"MemberAccess","referencedDeclaration":3,"src":"4890:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4871:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":261,"nodeType":"ExpressionStatement","src":"4871:26:0"},{"expression":{"id":273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":262,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"4911:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":268,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":263,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"4917:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"36","id":264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4921:1:0","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"4917:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4925:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4917:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4911:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":269,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"4930:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":271,"indexExpression":{"id":270,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"4933:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4930:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"Y","nodeType":"MemberAccess","referencedDeclaration":5,"src":"4930:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4911:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":274,"nodeType":"ExpressionStatement","src":"4911:26:0"},{"expression":{"id":288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":275,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"4951:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":281,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":276,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"4957:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"36","id":277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4961:1:0","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"4957:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4965:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4957:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4951:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":282,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":203,"src":"4970:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":284,"indexExpression":{"id":283,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"4973:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4970:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"X","nodeType":"MemberAccess","referencedDeclaration":10,"src":"4970:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":287,"indexExpression":{"hexValue":"30","id":286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4978:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4970:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4951:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":289,"nodeType":"ExpressionStatement","src":"4951:29:0"},{"expression":{"id":303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":290,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"4994:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":296,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":291,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"5000:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"36","id":292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5004:1:0","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"5000:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"33","id":294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5008:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"5000:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4994:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":297,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":203,"src":"5013:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":299,"indexExpression":{"id":298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"5016:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5013:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"X","nodeType":"MemberAccess","referencedDeclaration":10,"src":"5013:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":302,"indexExpression":{"hexValue":"31","id":301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5021:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5013:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4994:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":304,"nodeType":"ExpressionStatement","src":"4994:29:0"},{"expression":{"id":318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":305,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"5037:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":311,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":306,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"5043:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"36","id":307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5047:1:0","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"5043:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5051:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"5043:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5037:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":312,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":203,"src":"5056:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":314,"indexExpression":{"id":313,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"5059:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5056:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"Y","nodeType":"MemberAccess","referencedDeclaration":14,"src":"5056:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":317,"indexExpression":{"hexValue":"30","id":316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5064:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5056:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5037:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":319,"nodeType":"ExpressionStatement","src":"5037:29:0"},{"expression":{"id":333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":320,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"5080:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":326,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":321,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"5086:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"36","id":322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5090:1:0","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"5086:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"35","id":324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5094:1:0","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"5086:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5080:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":327,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":203,"src":"5099:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":329,"indexExpression":{"id":328,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"5102:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5099:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"Y","nodeType":"MemberAccess","referencedDeclaration":14,"src":"5099:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":332,"indexExpression":{"hexValue":"31","id":331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5107:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5099:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5080:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":334,"nodeType":"ExpressionStatement","src":"5080:29:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":243,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"4830:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":244,"name":"elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"4834:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4830:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":336,"initializationExpression":{"assignments":[240],"declarations":[{"constant":false,"id":240,"mutability":"mutable","name":"i","nameLocation":"4823:1:0","nodeType":"VariableDeclaration","scope":336,"src":"4818:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":239,"name":"uint","nodeType":"ElementaryTypeName","src":"4818:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":242,"initialValue":{"hexValue":"30","id":241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4827:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4818:10:0"},"loopExpression":{"expression":{"id":247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4844:3:0","subExpression":{"id":246,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"4844:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":248,"nodeType":"ExpressionStatement","src":"4844:3:0"},"nodeType":"ForStatement","src":"4813:307:0"},{"assignments":[342],"declarations":[{"constant":false,"id":342,"mutability":"mutable","name":"out","nameLocation":"5144:3:0","nodeType":"VariableDeclaration","scope":359,"src":"5129:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1_memory_ptr","typeString":"uint256[1]"},"typeName":{"baseType":{"id":340,"name":"uint","nodeType":"ElementaryTypeName","src":"5129:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":341,"length":{"hexValue":"31","id":339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5134:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"ArrayTypeName","src":"5129:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1_storage_ptr","typeString":"uint256[1]"}},"visibility":"internal"}],"id":343,"nodeType":"VariableDeclarationStatement","src":"5129:18:0"},{"assignments":[345],"declarations":[{"constant":false,"id":345,"mutability":"mutable","name":"success","nameLocation":"5162:7:0","nodeType":"VariableDeclaration","scope":359,"src":"5157:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":344,"name":"bool","nodeType":"ElementaryTypeName","src":"5157:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":346,"nodeType":"VariableDeclarationStatement","src":"5157:12:0"},{"AST":{"nodeType":"YulBlock","src":"5252:222:0","statements":[{"nodeType":"YulAssignment","src":"5266:93:0","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"5292:3:0"},"nodeType":"YulFunctionCall","src":"5292:5:0"},{"kind":"number","nodeType":"YulLiteral","src":"5299:4:0","type":"","value":"2000"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5288:3:0"},"nodeType":"YulFunctionCall","src":"5288:16:0"},{"kind":"number","nodeType":"YulLiteral","src":"5306:1:0","type":"","value":"8"},{"arguments":[{"name":"input","nodeType":"YulIdentifier","src":"5313:5:0"},{"kind":"number","nodeType":"YulLiteral","src":"5320:4:0","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5309:3:0"},"nodeType":"YulFunctionCall","src":"5309:16:0"},{"arguments":[{"name":"inputSize","nodeType":"YulIdentifier","src":"5331:9:0"},{"kind":"number","nodeType":"YulLiteral","src":"5342:4:0","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5327:3:0"},"nodeType":"YulFunctionCall","src":"5327:20:0"},{"name":"out","nodeType":"YulIdentifier","src":"5349:3:0"},{"kind":"number","nodeType":"YulLiteral","src":"5354:4:0","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"5277:10:0"},"nodeType":"YulFunctionCall","src":"5277:82:0"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"5266:7:0"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"5451:13:0","statements":[{"expression":{"arguments":[],"functionName":{"name":"invalid","nodeType":"YulIdentifier","src":"5453:7:0"},"nodeType":"YulFunctionCall","src":"5453:9:0"},"nodeType":"YulExpressionStatement","src":"5453:9:0"}]},"nodeType":"YulCase","src":"5444:20:0","value":{"kind":"number","nodeType":"YulLiteral","src":"5449:1:0","type":"","value":"0"}}],"expression":{"name":"success","nodeType":"YulIdentifier","src":"5436:7:0"},"nodeType":"YulSwitch","src":"5429:35:0"}]},"evmVersion":"london","externalReferences":[{"declaration":232,"isOffset":false,"isSlot":false,"src":"5313:5:0","valueSize":1},{"declaration":223,"isOffset":false,"isSlot":false,"src":"5331:9:0","valueSize":1},{"declaration":342,"isOffset":false,"isSlot":false,"src":"5349:3:0","valueSize":1},{"declaration":345,"isOffset":false,"isSlot":false,"src":"5266:7:0","valueSize":1},{"declaration":345,"isOffset":false,"isSlot":false,"src":"5436:7:0","valueSize":1}],"id":347,"nodeType":"InlineAssembly","src":"5243:231:0"},{"expression":{"arguments":[{"id":349,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":345,"src":"5491:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70616972696e672d6f70636f64652d6661696c6564","id":350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5499:23:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f3220b3ef654fc0d9a13e2b6d8c956cb8fb22df61a3a050ded181d8902069fe5","typeString":"literal_string \"pairing-opcode-failed\""},"value":"pairing-opcode-failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f3220b3ef654fc0d9a13e2b6d8c956cb8fb22df61a3a050ded181d8902069fe5","typeString":"literal_string \"pairing-opcode-failed\""}],"id":348,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5483:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5483:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":352,"nodeType":"ExpressionStatement","src":"5483:40:0"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":353,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"5540:3:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$1_memory_ptr","typeString":"uint256[1] memory"}},"id":355,"indexExpression":{"hexValue":"30","id":354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5544:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5540:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5550:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5540:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":207,"id":358,"nodeType":"Return","src":"5533:18:0"}]},"documentation":{"id":195,"nodeType":"StructuredDocumentation","src":"4316:201:0","text":"@return the result of computing the pairing check\n e(p1[0], p2[0]) * .... * e(p1[n], p2[n]) == 1\n For example pairing([P1(), P1().negate()], [P2(), P2()]) should\n return true."},"id":360,"implemented":true,"kind":"function","modifiers":[],"name":"pairing","nameLocation":"4531:7:0","nodeType":"FunctionDefinition","parameters":{"id":204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":199,"mutability":"mutable","name":"p1","nameLocation":"4556:2:0","nodeType":"VariableDeclaration","scope":360,"src":"4539:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point[]"},"typeName":{"baseType":{"id":197,"nodeType":"UserDefinedTypeName","pathNode":{"id":196,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"4539:7:0"},"referencedDeclaration":6,"src":"4539:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"id":198,"nodeType":"ArrayTypeName","src":"4539:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr","typeString":"struct Pairing.G1Point[]"}},"visibility":"internal"},{"constant":false,"id":203,"mutability":"mutable","name":"p2","nameLocation":"4577:2:0","nodeType":"VariableDeclaration","scope":360,"src":"4560:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point[]"},"typeName":{"baseType":{"id":201,"nodeType":"UserDefinedTypeName","pathNode":{"id":200,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"4560:7:0"},"referencedDeclaration":15,"src":"4560:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"id":202,"nodeType":"ArrayTypeName","src":"4560:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr","typeString":"struct Pairing.G2Point[]"}},"visibility":"internal"}],"src":"4538:42:0"},"returnParameters":{"id":207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":360,"src":"4604:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":205,"name":"bool","nodeType":"ElementaryTypeName","src":"4604:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4603:6:0"},"scope":631,"src":"4522:1036:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":431,"nodeType":"Block","src":"5752:215:0","statements":[{"assignments":[382],"declarations":[{"constant":false,"id":382,"mutability":"mutable","name":"p1","nameLocation":"5779:2:0","nodeType":"VariableDeclaration","scope":431,"src":"5762:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point[]"},"typeName":{"baseType":{"id":380,"nodeType":"UserDefinedTypeName","pathNode":{"id":379,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"5762:7:0"},"referencedDeclaration":6,"src":"5762:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"id":381,"nodeType":"ArrayTypeName","src":"5762:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr","typeString":"struct Pairing.G1Point[]"}},"visibility":"internal"}],"id":389,"initialValue":{"arguments":[{"hexValue":"32","id":387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5798:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5784:13:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Pairing.G1Point memory[] memory)"},"typeName":{"baseType":{"id":384,"nodeType":"UserDefinedTypeName","pathNode":{"id":383,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"5788:7:0"},"referencedDeclaration":6,"src":"5788:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"id":385,"nodeType":"ArrayTypeName","src":"5788:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr","typeString":"struct Pairing.G1Point[]"}}},"id":388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5784:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5762:38:0"},{"assignments":[394],"declarations":[{"constant":false,"id":394,"mutability":"mutable","name":"p2","nameLocation":"5827:2:0","nodeType":"VariableDeclaration","scope":431,"src":"5810:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point[]"},"typeName":{"baseType":{"id":392,"nodeType":"UserDefinedTypeName","pathNode":{"id":391,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"5810:7:0"},"referencedDeclaration":15,"src":"5810:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"id":393,"nodeType":"ArrayTypeName","src":"5810:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr","typeString":"struct Pairing.G2Point[]"}},"visibility":"internal"}],"id":401,"initialValue":{"arguments":[{"hexValue":"32","id":399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5846:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5832:13:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Pairing.G2Point memory[] memory)"},"typeName":{"baseType":{"id":396,"nodeType":"UserDefinedTypeName","pathNode":{"id":395,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"5836:7:0"},"referencedDeclaration":15,"src":"5836:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"id":397,"nodeType":"ArrayTypeName","src":"5836:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr","typeString":"struct Pairing.G2Point[]"}}},"id":400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5832:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5810:38:0"},{"expression":{"id":406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":402,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"5858:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":404,"indexExpression":{"hexValue":"30","id":403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5861:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5858:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":405,"name":"a1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"5866:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"5858:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":407,"nodeType":"ExpressionStatement","src":"5858:10:0"},{"expression":{"id":412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":408,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"5878:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":410,"indexExpression":{"hexValue":"31","id":409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5881:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5878:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":411,"name":"b1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"5886:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"5878:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":413,"nodeType":"ExpressionStatement","src":"5878:10:0"},{"expression":{"id":418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":414,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"5898:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":416,"indexExpression":{"hexValue":"30","id":415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5901:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5898:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":417,"name":"a2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"5906:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"5898:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":419,"nodeType":"ExpressionStatement","src":"5898:10:0"},{"expression":{"id":424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":420,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"5918:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":422,"indexExpression":{"hexValue":"31","id":421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5921:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5918:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":423,"name":"b2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"5926:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"5918:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":425,"nodeType":"ExpressionStatement","src":"5918:10:0"},{"expression":{"arguments":[{"id":427,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"5953:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},{"id":428,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"5957:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}],"id":426,"name":"pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"5945:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)"}},"id":429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5945:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":377,"id":430,"nodeType":"Return","src":"5938:22:0"}]},"documentation":{"id":361,"nodeType":"StructuredDocumentation","src":"5563:57:0","text":"Convenience method for a pairing check for two pairs."},"id":432,"implemented":true,"kind":"function","modifiers":[],"name":"pairingProd2","nameLocation":"5634:12:0","nodeType":"FunctionDefinition","parameters":{"id":374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":364,"mutability":"mutable","name":"a1","nameLocation":"5662:2:0","nodeType":"VariableDeclaration","scope":432,"src":"5647:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":363,"nodeType":"UserDefinedTypeName","pathNode":{"id":362,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"5647:7:0"},"referencedDeclaration":6,"src":"5647:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":367,"mutability":"mutable","name":"a2","nameLocation":"5681:2:0","nodeType":"VariableDeclaration","scope":432,"src":"5666:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":366,"nodeType":"UserDefinedTypeName","pathNode":{"id":365,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"5666:7:0"},"referencedDeclaration":15,"src":"5666:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"},{"constant":false,"id":370,"mutability":"mutable","name":"b1","nameLocation":"5700:2:0","nodeType":"VariableDeclaration","scope":432,"src":"5685:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":369,"nodeType":"UserDefinedTypeName","pathNode":{"id":368,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"5685:7:0"},"referencedDeclaration":6,"src":"5685:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":373,"mutability":"mutable","name":"b2","nameLocation":"5719:2:0","nodeType":"VariableDeclaration","scope":432,"src":"5704:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":372,"nodeType":"UserDefinedTypeName","pathNode":{"id":371,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"5704:7:0"},"referencedDeclaration":15,"src":"5704:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"}],"src":"5646:76:0"},"returnParameters":{"id":377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":376,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":432,"src":"5746:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":375,"name":"bool","nodeType":"ElementaryTypeName","src":"5746:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5745:6:0"},"scope":631,"src":"5625:342:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":521,"nodeType":"Block","src":"6243:255:0","statements":[{"assignments":[460],"declarations":[{"constant":false,"id":460,"mutability":"mutable","name":"p1","nameLocation":"6270:2:0","nodeType":"VariableDeclaration","scope":521,"src":"6253:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point[]"},"typeName":{"baseType":{"id":458,"nodeType":"UserDefinedTypeName","pathNode":{"id":457,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"6253:7:0"},"referencedDeclaration":6,"src":"6253:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"id":459,"nodeType":"ArrayTypeName","src":"6253:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr","typeString":"struct Pairing.G1Point[]"}},"visibility":"internal"}],"id":467,"initialValue":{"arguments":[{"hexValue":"33","id":465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6289:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6275:13:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Pairing.G1Point memory[] memory)"},"typeName":{"baseType":{"id":462,"nodeType":"UserDefinedTypeName","pathNode":{"id":461,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"6279:7:0"},"referencedDeclaration":6,"src":"6279:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"id":463,"nodeType":"ArrayTypeName","src":"6279:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr","typeString":"struct Pairing.G1Point[]"}}},"id":466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6275:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6253:38:0"},{"assignments":[472],"declarations":[{"constant":false,"id":472,"mutability":"mutable","name":"p2","nameLocation":"6318:2:0","nodeType":"VariableDeclaration","scope":521,"src":"6301:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point[]"},"typeName":{"baseType":{"id":470,"nodeType":"UserDefinedTypeName","pathNode":{"id":469,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"6301:7:0"},"referencedDeclaration":15,"src":"6301:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"id":471,"nodeType":"ArrayTypeName","src":"6301:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr","typeString":"struct Pairing.G2Point[]"}},"visibility":"internal"}],"id":479,"initialValue":{"arguments":[{"hexValue":"33","id":477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6337:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6323:13:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Pairing.G2Point memory[] memory)"},"typeName":{"baseType":{"id":474,"nodeType":"UserDefinedTypeName","pathNode":{"id":473,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"6327:7:0"},"referencedDeclaration":15,"src":"6327:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"id":475,"nodeType":"ArrayTypeName","src":"6327:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr","typeString":"struct Pairing.G2Point[]"}}},"id":478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6323:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6301:38:0"},{"expression":{"id":484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":480,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"6349:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":482,"indexExpression":{"hexValue":"30","id":481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6352:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6349:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":483,"name":"a1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"6357:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"6349:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":485,"nodeType":"ExpressionStatement","src":"6349:10:0"},{"expression":{"id":490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":486,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"6369:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":488,"indexExpression":{"hexValue":"31","id":487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6372:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6369:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":489,"name":"b1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"6377:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"6369:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":491,"nodeType":"ExpressionStatement","src":"6369:10:0"},{"expression":{"id":496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":492,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"6389:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":494,"indexExpression":{"hexValue":"32","id":493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6392:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6389:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":495,"name":"c1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"6397:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"6389:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":497,"nodeType":"ExpressionStatement","src":"6389:10:0"},{"expression":{"id":502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":498,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":472,"src":"6409:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":500,"indexExpression":{"hexValue":"30","id":499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6412:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6409:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":501,"name":"a2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":439,"src":"6417:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"6409:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":503,"nodeType":"ExpressionStatement","src":"6409:10:0"},{"expression":{"id":508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":504,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":472,"src":"6429:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":506,"indexExpression":{"hexValue":"31","id":505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6432:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6429:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":507,"name":"b2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":445,"src":"6437:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"6429:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":509,"nodeType":"ExpressionStatement","src":"6429:10:0"},{"expression":{"id":514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":510,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":472,"src":"6449:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":512,"indexExpression":{"hexValue":"32","id":511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6452:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6449:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":513,"name":"c2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"6457:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"6449:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":515,"nodeType":"ExpressionStatement","src":"6449:10:0"},{"expression":{"arguments":[{"id":517,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"6484:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},{"id":518,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":472,"src":"6488:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}],"id":516,"name":"pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"6476:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)"}},"id":519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6476:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":455,"id":520,"nodeType":"Return","src":"6469:22:0"}]},"documentation":{"id":433,"nodeType":"StructuredDocumentation","src":"5972:59:0","text":"Convenience method for a pairing check for three pairs."},"id":522,"implemented":true,"kind":"function","modifiers":[],"name":"pairingProd3","nameLocation":"6045:12:0","nodeType":"FunctionDefinition","parameters":{"id":452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":436,"mutability":"mutable","name":"a1","nameLocation":"6086:2:0","nodeType":"VariableDeclaration","scope":522,"src":"6071:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":435,"nodeType":"UserDefinedTypeName","pathNode":{"id":434,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"6071:7:0"},"referencedDeclaration":6,"src":"6071:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":439,"mutability":"mutable","name":"a2","nameLocation":"6105:2:0","nodeType":"VariableDeclaration","scope":522,"src":"6090:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":438,"nodeType":"UserDefinedTypeName","pathNode":{"id":437,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"6090:7:0"},"referencedDeclaration":15,"src":"6090:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"},{"constant":false,"id":442,"mutability":"mutable","name":"b1","nameLocation":"6136:2:0","nodeType":"VariableDeclaration","scope":522,"src":"6121:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":441,"nodeType":"UserDefinedTypeName","pathNode":{"id":440,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"6121:7:0"},"referencedDeclaration":6,"src":"6121:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":445,"mutability":"mutable","name":"b2","nameLocation":"6155:2:0","nodeType":"VariableDeclaration","scope":522,"src":"6140:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":444,"nodeType":"UserDefinedTypeName","pathNode":{"id":443,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"6140:7:0"},"referencedDeclaration":15,"src":"6140:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"},{"constant":false,"id":448,"mutability":"mutable","name":"c1","nameLocation":"6186:2:0","nodeType":"VariableDeclaration","scope":522,"src":"6171:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":447,"nodeType":"UserDefinedTypeName","pathNode":{"id":446,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"6171:7:0"},"referencedDeclaration":6,"src":"6171:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":451,"mutability":"mutable","name":"c2","nameLocation":"6205:2:0","nodeType":"VariableDeclaration","scope":522,"src":"6190:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":450,"nodeType":"UserDefinedTypeName","pathNode":{"id":449,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"6190:7:0"},"referencedDeclaration":15,"src":"6190:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"}],"src":"6057:156:0"},"returnParameters":{"id":455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":522,"src":"6237:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":453,"name":"bool","nodeType":"ElementaryTypeName","src":"6237:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6236:6:0"},"scope":631,"src":"6036:462:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":629,"nodeType":"Block","src":"6823:295:0","statements":[{"assignments":[556],"declarations":[{"constant":false,"id":556,"mutability":"mutable","name":"p1","nameLocation":"6850:2:0","nodeType":"VariableDeclaration","scope":629,"src":"6833:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point[]"},"typeName":{"baseType":{"id":554,"nodeType":"UserDefinedTypeName","pathNode":{"id":553,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"6833:7:0"},"referencedDeclaration":6,"src":"6833:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"id":555,"nodeType":"ArrayTypeName","src":"6833:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr","typeString":"struct Pairing.G1Point[]"}},"visibility":"internal"}],"id":563,"initialValue":{"arguments":[{"hexValue":"34","id":561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6869:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6855:13:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Pairing.G1Point memory[] memory)"},"typeName":{"baseType":{"id":558,"nodeType":"UserDefinedTypeName","pathNode":{"id":557,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"6859:7:0"},"referencedDeclaration":6,"src":"6859:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"id":559,"nodeType":"ArrayTypeName","src":"6859:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr","typeString":"struct Pairing.G1Point[]"}}},"id":562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6855:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6833:38:0"},{"assignments":[568],"declarations":[{"constant":false,"id":568,"mutability":"mutable","name":"p2","nameLocation":"6898:2:0","nodeType":"VariableDeclaration","scope":629,"src":"6881:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point[]"},"typeName":{"baseType":{"id":566,"nodeType":"UserDefinedTypeName","pathNode":{"id":565,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"6881:7:0"},"referencedDeclaration":15,"src":"6881:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"id":567,"nodeType":"ArrayTypeName","src":"6881:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr","typeString":"struct Pairing.G2Point[]"}},"visibility":"internal"}],"id":575,"initialValue":{"arguments":[{"hexValue":"34","id":573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6917:1:0","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6903:13:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Pairing.G2Point memory[] memory)"},"typeName":{"baseType":{"id":570,"nodeType":"UserDefinedTypeName","pathNode":{"id":569,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"6907:7:0"},"referencedDeclaration":15,"src":"6907:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"id":571,"nodeType":"ArrayTypeName","src":"6907:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_storage_$dyn_storage_ptr","typeString":"struct Pairing.G2Point[]"}}},"id":574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6903:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6881:38:0"},{"expression":{"id":580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":576,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"6929:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":578,"indexExpression":{"hexValue":"30","id":577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6932:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6929:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":579,"name":"a1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":526,"src":"6937:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"6929:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":581,"nodeType":"ExpressionStatement","src":"6929:10:0"},{"expression":{"id":586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":582,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"6949:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":584,"indexExpression":{"hexValue":"31","id":583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6952:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6949:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":585,"name":"b1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"6957:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"6949:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":587,"nodeType":"ExpressionStatement","src":"6949:10:0"},{"expression":{"id":592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":588,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"6969:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":590,"indexExpression":{"hexValue":"32","id":589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6972:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6969:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":591,"name":"c1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":538,"src":"6977:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"6969:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":593,"nodeType":"ExpressionStatement","src":"6969:10:0"},{"expression":{"id":598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":594,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"6989:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":596,"indexExpression":{"hexValue":"33","id":595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6992:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6989:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":597,"name":"d1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":544,"src":"6997:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"6989:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":599,"nodeType":"ExpressionStatement","src":"6989:10:0"},{"expression":{"id":604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":600,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"7009:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":602,"indexExpression":{"hexValue":"30","id":601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7012:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7009:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":603,"name":"a2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":529,"src":"7017:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"7009:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":605,"nodeType":"ExpressionStatement","src":"7009:10:0"},{"expression":{"id":610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":606,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"7029:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":608,"indexExpression":{"hexValue":"31","id":607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7032:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7029:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":609,"name":"b2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"7037:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"7029:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":611,"nodeType":"ExpressionStatement","src":"7029:10:0"},{"expression":{"id":616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":612,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"7049:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":614,"indexExpression":{"hexValue":"32","id":613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7052:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7049:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":615,"name":"c2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":541,"src":"7057:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"7049:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":617,"nodeType":"ExpressionStatement","src":"7049:10:0"},{"expression":{"id":622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":618,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"7069:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}},"id":620,"indexExpression":{"hexValue":"33","id":619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7072:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7069:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":621,"name":"d2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":547,"src":"7077:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"7069:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":623,"nodeType":"ExpressionStatement","src":"7069:10:0"},{"expression":{"arguments":[{"id":625,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"7104:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},{"id":626,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"7108:2:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"},{"typeIdentifier":"t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G2Point memory[] memory"}],"id":624,"name":"pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"7096:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_G2Point_$15_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Pairing.G1Point memory[] memory,struct Pairing.G2Point memory[] memory) view returns (bool)"}},"id":627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7096:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":551,"id":628,"nodeType":"Return","src":"7089:22:0"}]},"documentation":{"id":523,"nodeType":"StructuredDocumentation","src":"6503:58:0","text":"Convenience method for a pairing check for four pairs."},"id":630,"implemented":true,"kind":"function","modifiers":[],"name":"pairingProd4","nameLocation":"6575:12:0","nodeType":"FunctionDefinition","parameters":{"id":548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":526,"mutability":"mutable","name":"a1","nameLocation":"6616:2:0","nodeType":"VariableDeclaration","scope":630,"src":"6601:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":525,"nodeType":"UserDefinedTypeName","pathNode":{"id":524,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"6601:7:0"},"referencedDeclaration":6,"src":"6601:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":529,"mutability":"mutable","name":"a2","nameLocation":"6635:2:0","nodeType":"VariableDeclaration","scope":630,"src":"6620:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":528,"nodeType":"UserDefinedTypeName","pathNode":{"id":527,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"6620:7:0"},"referencedDeclaration":15,"src":"6620:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"},{"constant":false,"id":532,"mutability":"mutable","name":"b1","nameLocation":"6666:2:0","nodeType":"VariableDeclaration","scope":630,"src":"6651:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":531,"nodeType":"UserDefinedTypeName","pathNode":{"id":530,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"6651:7:0"},"referencedDeclaration":6,"src":"6651:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":535,"mutability":"mutable","name":"b2","nameLocation":"6685:2:0","nodeType":"VariableDeclaration","scope":630,"src":"6670:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":534,"nodeType":"UserDefinedTypeName","pathNode":{"id":533,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"6670:7:0"},"referencedDeclaration":15,"src":"6670:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"},{"constant":false,"id":538,"mutability":"mutable","name":"c1","nameLocation":"6716:2:0","nodeType":"VariableDeclaration","scope":630,"src":"6701:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":537,"nodeType":"UserDefinedTypeName","pathNode":{"id":536,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"6701:7:0"},"referencedDeclaration":6,"src":"6701:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":541,"mutability":"mutable","name":"c2","nameLocation":"6735:2:0","nodeType":"VariableDeclaration","scope":630,"src":"6720:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":540,"nodeType":"UserDefinedTypeName","pathNode":{"id":539,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"6720:7:0"},"referencedDeclaration":15,"src":"6720:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"},{"constant":false,"id":544,"mutability":"mutable","name":"d1","nameLocation":"6766:2:0","nodeType":"VariableDeclaration","scope":630,"src":"6751:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":543,"nodeType":"UserDefinedTypeName","pathNode":{"id":542,"name":"G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"6751:7:0"},"referencedDeclaration":6,"src":"6751:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":547,"mutability":"mutable","name":"d2","nameLocation":"6785:2:0","nodeType":"VariableDeclaration","scope":630,"src":"6770:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":546,"nodeType":"UserDefinedTypeName","pathNode":{"id":545,"name":"G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"6770:7:0"},"referencedDeclaration":15,"src":"6770:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"}],"src":"6587:206:0"},"returnParameters":{"id":551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":630,"src":"6817:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":549,"name":"bool","nodeType":"ElementaryTypeName","src":"6817:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6816:6:0"},"scope":631,"src":"6566:552:0","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":1025,"src":"1257:5863:0","usedErrors":[]},{"abstract":false,"baseContracts":[],"canonicalName":"MockVerifier","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":1024,"linearizedBaseContracts":[1024],"name":"MockVerifier","nameLocation":"7130:12:0","nodeType":"ContractDefinition","nodes":[{"id":633,"libraryName":{"id":632,"name":"Pairing","nodeType":"IdentifierPath","referencedDeclaration":631,"src":"7155:7:0"},"nodeType":"UsingForDirective","src":"7149:20:0"},{"canonicalName":"MockVerifier.VerifyingKey","id":650,"members":[{"constant":false,"id":636,"mutability":"mutable","name":"alfa1","nameLocation":"7220:5:0","nodeType":"VariableDeclaration","scope":650,"src":"7204:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":635,"nodeType":"UserDefinedTypeName","pathNode":{"id":634,"name":"Pairing.G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"7204:15:0"},"referencedDeclaration":6,"src":"7204:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":639,"mutability":"mutable","name":"beta2","nameLocation":"7251:5:0","nodeType":"VariableDeclaration","scope":650,"src":"7235:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":638,"nodeType":"UserDefinedTypeName","pathNode":{"id":637,"name":"Pairing.G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"7235:15:0"},"referencedDeclaration":15,"src":"7235:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"},{"constant":false,"id":642,"mutability":"mutable","name":"gamma2","nameLocation":"7282:6:0","nodeType":"VariableDeclaration","scope":650,"src":"7266:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":641,"nodeType":"UserDefinedTypeName","pathNode":{"id":640,"name":"Pairing.G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"7266:15:0"},"referencedDeclaration":15,"src":"7266:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"},{"constant":false,"id":645,"mutability":"mutable","name":"delta2","nameLocation":"7314:6:0","nodeType":"VariableDeclaration","scope":650,"src":"7298:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":644,"nodeType":"UserDefinedTypeName","pathNode":{"id":643,"name":"Pairing.G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"7298:15:0"},"referencedDeclaration":15,"src":"7298:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"},{"constant":false,"id":649,"mutability":"mutable","name":"IC","nameLocation":"7348:2:0","nodeType":"VariableDeclaration","scope":650,"src":"7330:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr","typeString":"struct Pairing.G1Point[]"},"typeName":{"baseType":{"id":647,"nodeType":"UserDefinedTypeName","pathNode":{"id":646,"name":"Pairing.G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"7330:15:0"},"referencedDeclaration":6,"src":"7330:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"id":648,"nodeType":"ArrayTypeName","src":"7330:17:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr","typeString":"struct Pairing.G1Point[]"}},"visibility":"internal"}],"name":"VerifyingKey","nameLocation":"7181:12:0","nodeType":"StructDefinition","scope":1024,"src":"7174:183:0","visibility":"public"},{"canonicalName":"MockVerifier.Proof","id":660,"members":[{"constant":false,"id":653,"mutability":"mutable","name":"A","nameLocation":"7401:1:0","nodeType":"VariableDeclaration","scope":660,"src":"7385:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":652,"nodeType":"UserDefinedTypeName","pathNode":{"id":651,"name":"Pairing.G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"7385:15:0"},"referencedDeclaration":6,"src":"7385:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"},{"constant":false,"id":656,"mutability":"mutable","name":"B","nameLocation":"7428:1:0","nodeType":"VariableDeclaration","scope":660,"src":"7412:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"},"typeName":{"id":655,"nodeType":"UserDefinedTypeName","pathNode":{"id":654,"name":"Pairing.G2Point","nodeType":"IdentifierPath","referencedDeclaration":15,"src":"7412:15:0"},"referencedDeclaration":15,"src":"7412:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_storage_ptr","typeString":"struct Pairing.G2Point"}},"visibility":"internal"},{"constant":false,"id":659,"mutability":"mutable","name":"C","nameLocation":"7455:1:0","nodeType":"VariableDeclaration","scope":660,"src":"7439:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":658,"nodeType":"UserDefinedTypeName","pathNode":{"id":657,"name":"Pairing.G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"7439:15:0"},"referencedDeclaration":6,"src":"7439:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"}],"name":"Proof","nameLocation":"7369:5:0","nodeType":"StructDefinition","scope":1024,"src":"7362:101:0","visibility":"public"},{"body":{"id":765,"nodeType":"Block","src":"7539:2353:0","statements":[{"expression":{"id":674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":666,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":664,"src":"7549:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"alfa1","nodeType":"MemberAccess","referencedDeclaration":636,"src":"7549:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432","id":671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7589:77:0","typeDescriptions":{"typeIdentifier":"t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1","typeString":"int_const 2049...(69 digits omitted)...3042"},"value":"20491192805390485299153009773594534940189261866228447918068658471970481763042"},{"hexValue":"39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538","id":672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7680:76:0","typeDescriptions":{"typeIdentifier":"t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1","typeString":"int_const 9383...(68 digits omitted)...5958"},"value":"9383485363053290200918347156157836566562967994039712273449902621266178545958"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1","typeString":"int_const 2049...(69 digits omitted)...3042"},{"typeIdentifier":"t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1","typeString":"int_const 9383...(68 digits omitted)...5958"}],"expression":{"id":669,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"7560:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"G1Point","nodeType":"MemberAccess","referencedDeclaration":6,"src":"7560:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G1Point_$6_storage_ptr_$","typeString":"type(struct Pairing.G1Point storage pointer)"}},"id":673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7560:206:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"7549:217:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":675,"nodeType":"ExpressionStatement","src":"7549:217:0"},{"expression":{"id":688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":676,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":664,"src":"7777:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"beta2","nodeType":"MemberAccess","referencedDeclaration":639,"src":"7777:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"components":[{"hexValue":"34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332","id":681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7818:76:0","typeDescriptions":{"typeIdentifier":"t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1","typeString":"int_const 4252...(68 digits omitted)...7132"},"value":"4252822878758300859123897981450591353533073413197771768651442665752259397132"},{"hexValue":"36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331","id":682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7909:76:0","typeDescriptions":{"typeIdentifier":"t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1","typeString":"int_const 6375...(68 digits omitted)...8731"},"value":"6375614351688725206403948262868962793625744043794305715222011528459656738731"}],"id":683,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7817:169:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},{"components":[{"hexValue":"3231383437303335313035353238373435343033323838323332363931313437353834373238313931313632373332323939383635333338333737313539363932333530303539313336363739","id":684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8001:77:0","typeDescriptions":{"typeIdentifier":"t_rational_21847035105528745403288232691147584728191162732299865338377159692350059136679_by_1","typeString":"int_const 2184...(69 digits omitted)...6679"},"value":"21847035105528745403288232691147584728191162732299865338377159692350059136679"},{"hexValue":"3130353035323432363236333730323632323737353532393031303832303934333536363937343039383335363830323230353930393731383733313731313430333731333331323036383536","id":685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8093:77:0","typeDescriptions":{"typeIdentifier":"t_rational_10505242626370262277552901082094356697409835680220590971873171140371331206856_by_1","typeString":"int_const 1050...(69 digits omitted)...6856"},"value":"10505242626370262277552901082094356697409835680220590971873171140371331206856"}],"id":686,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8000:171:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"},{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}],"expression":{"id":679,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"7788:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"G2Point","nodeType":"MemberAccess","referencedDeclaration":15,"src":"7788:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G2Point_$15_storage_ptr_$","typeString":"type(struct Pairing.G2Point storage pointer)"}},"id":687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7788:393:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"7777:404:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":689,"nodeType":"ExpressionStatement","src":"7777:404:0"},{"expression":{"id":702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":690,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":664,"src":"8191:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"gamma2","nodeType":"MemberAccess","referencedDeclaration":642,"src":"8191:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"components":[{"hexValue":"3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334","id":695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8233:77:0","typeDescriptions":{"typeIdentifier":"t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1","typeString":"int_const 1155...(69 digits omitted)...5634"},"value":"11559732032986387107991004021392285783925812861821192530917403151452391805634"},{"hexValue":"3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831","id":696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8325:77:0","typeDescriptions":{"typeIdentifier":"t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1","typeString":"int_const 1085...(69 digits omitted)...2781"},"value":"10857046999023057135944570762232829481370756359578518086990519993285655852781"}],"id":697,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8232:171:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},{"components":[{"hexValue":"34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331","id":698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8418:76:0","typeDescriptions":{"typeIdentifier":"t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1","typeString":"int_const 4082...(68 digits omitted)...3531"},"value":"4082367875863433681332203403145435568316851327593401208105741076214120093531"},{"hexValue":"38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330","id":699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8509:76:0","typeDescriptions":{"typeIdentifier":"t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1","typeString":"int_const 8495...(68 digits omitted)...1930"},"value":"8495653923123431417604973247489272438418190587263600148770280649306958101930"}],"id":700,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8417:169:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"},{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}],"expression":{"id":693,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"8203:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"G2Point","nodeType":"MemberAccess","referencedDeclaration":15,"src":"8203:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G2Point_$15_storage_ptr_$","typeString":"type(struct Pairing.G2Point storage pointer)"}},"id":701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8203:393:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"8191:405:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":703,"nodeType":"ExpressionStatement","src":"8191:405:0"},{"expression":{"id":716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":704,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":664,"src":"8606:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"delta2","nodeType":"MemberAccess","referencedDeclaration":645,"src":"8606:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"components":[{"hexValue":"3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334","id":709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8648:77:0","typeDescriptions":{"typeIdentifier":"t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1","typeString":"int_const 1155...(69 digits omitted)...5634"},"value":"11559732032986387107991004021392285783925812861821192530917403151452391805634"},{"hexValue":"3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831","id":710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8740:77:0","typeDescriptions":{"typeIdentifier":"t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1","typeString":"int_const 1085...(69 digits omitted)...2781"},"value":"10857046999023057135944570762232829481370756359578518086990519993285655852781"}],"id":711,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8647:171:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},{"components":[{"hexValue":"34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331","id":712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8833:76:0","typeDescriptions":{"typeIdentifier":"t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1","typeString":"int_const 4082...(68 digits omitted)...3531"},"value":"4082367875863433681332203403145435568316851327593401208105741076214120093531"},{"hexValue":"38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330","id":713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8924:76:0","typeDescriptions":{"typeIdentifier":"t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1","typeString":"int_const 8495...(68 digits omitted)...1930"},"value":"8495653923123431417604973247489272438418190587263600148770280649306958101930"}],"id":714,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8832:169:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"},{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}],"expression":{"id":707,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"8618:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"G2Point","nodeType":"MemberAccess","referencedDeclaration":15,"src":"8618:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G2Point_$15_storage_ptr_$","typeString":"type(struct Pairing.G2Point storage pointer)"}},"id":715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8618:393:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"8606:405:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":717,"nodeType":"ExpressionStatement","src":"8606:405:0"},{"expression":{"id":727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":718,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":664,"src":"9021:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"IC","nodeType":"MemberAccess","referencedDeclaration":649,"src":"9021:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"33","id":725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9051:1:0","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9029:21:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Pairing.G1Point memory[] memory)"},"typeName":{"baseType":{"id":722,"nodeType":"UserDefinedTypeName","pathNode":{"id":721,"name":"Pairing.G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"9033:15:0"},"referencedDeclaration":6,"src":"9033:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"id":723,"nodeType":"ArrayTypeName","src":"9033:17:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_storage_$dyn_storage_ptr","typeString":"struct Pairing.G1Point[]"}}},"id":726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9029:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"src":"9021:32:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":728,"nodeType":"ExpressionStatement","src":"9021:32:0"},{"expression":{"id":739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":729,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":664,"src":"9072:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"IC","nodeType":"MemberAccess","referencedDeclaration":649,"src":"9072:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":733,"indexExpression":{"hexValue":"30","id":731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9078:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9072:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"36383139383031333935343038393338333530323132393030323438373439373332333634383231343737353431363230363335353131383134323636353336353939363239383932333635","id":736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9113:76:0","typeDescriptions":{"typeIdentifier":"t_rational_6819801395408938350212900248749732364821477541620635511814266536599629892365_by_1","typeString":"int_const 6819...(68 digits omitted)...2365"},"value":"6819801395408938350212900248749732364821477541620635511814266536599629892365"},{"hexValue":"39303932323532333330303333393932353534373535303334393731353834383634353837393734323830393732393438303836353638353937353534303138323738363039383631333732","id":737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9203:76:0","typeDescriptions":{"typeIdentifier":"t_rational_9092252330033992554755034971584864587974280972948086568597554018278609861372_by_1","typeString":"int_const 9092...(68 digits omitted)...1372"},"value":"9092252330033992554755034971584864587974280972948086568597554018278609861372"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_6819801395408938350212900248749732364821477541620635511814266536599629892365_by_1","typeString":"int_const 6819...(68 digits omitted)...2365"},{"typeIdentifier":"t_rational_9092252330033992554755034971584864587974280972948086568597554018278609861372_by_1","typeString":"int_const 9092...(68 digits omitted)...1372"}],"expression":{"id":734,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"9083:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"G1Point","nodeType":"MemberAccess","referencedDeclaration":6,"src":"9083:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G1Point_$6_storage_ptr_$","typeString":"type(struct Pairing.G1Point storage pointer)"}},"id":738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9083:206:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"9072:217:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":740,"nodeType":"ExpressionStatement","src":"9072:217:0"},{"expression":{"id":751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":741,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":664,"src":"9346:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"IC","nodeType":"MemberAccess","referencedDeclaration":649,"src":"9346:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":745,"indexExpression":{"hexValue":"31","id":743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9352:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9346:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"32343934393233343436303538323134363436363339343138353931373132313536343231333636333838373632313831383231363337323839353331303835383433373238333234323831","id":748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9387:76:0","typeDescriptions":{"typeIdentifier":"t_rational_2494923446058214646639418591712156421366388762181821637289531085843728324281_by_1","typeString":"int_const 2494...(68 digits omitted)...4281"},"value":"2494923446058214646639418591712156421366388762181821637289531085843728324281"},{"hexValue":"35373235313738313332343238343830353638383231343033313436343936393532353531333332373231313237303636313738313030343634373938353436383231313431323731333132","id":749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9477:76:0","typeDescriptions":{"typeIdentifier":"t_rational_5725178132428480568821403146496952551332721127066178100464798546821141271312_by_1","typeString":"int_const 5725...(68 digits omitted)...1312"},"value":"5725178132428480568821403146496952551332721127066178100464798546821141271312"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2494923446058214646639418591712156421366388762181821637289531085843728324281_by_1","typeString":"int_const 2494...(68 digits omitted)...4281"},{"typeIdentifier":"t_rational_5725178132428480568821403146496952551332721127066178100464798546821141271312_by_1","typeString":"int_const 5725...(68 digits omitted)...1312"}],"expression":{"id":746,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"9357:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"G1Point","nodeType":"MemberAccess","referencedDeclaration":6,"src":"9357:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G1Point_$6_storage_ptr_$","typeString":"type(struct Pairing.G1Point storage pointer)"}},"id":750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9357:206:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"9346:217:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":752,"nodeType":"ExpressionStatement","src":"9346:217:0"},{"expression":{"id":763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":753,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":664,"src":"9620:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"IC","nodeType":"MemberAccess","referencedDeclaration":649,"src":"9620:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":757,"indexExpression":{"hexValue":"32","id":755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9626:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9620:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"32393439303838333432323131343530303738373730303239353539363135393034353235343233313433393832393434323339343530323537373737353636393731383039363238313231","id":760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9661:76:0","typeDescriptions":{"typeIdentifier":"t_rational_2949088342211450078770029559615904525423143982944239450257777566971809628121_by_1","typeString":"int_const 2949...(68 digits omitted)...8121"},"value":"2949088342211450078770029559615904525423143982944239450257777566971809628121"},{"hexValue":"3134333832393336303939383931383234393237333431393730313838343436363239353534323538383536303833353433333635393136333936373033313131323539353830383036313334","id":761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9751:77:0","typeDescriptions":{"typeIdentifier":"t_rational_14382936099891824927341970188446629554258856083543365916396703111259580806134_by_1","typeString":"int_const 1438...(69 digits omitted)...6134"},"value":"14382936099891824927341970188446629554258856083543365916396703111259580806134"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2949088342211450078770029559615904525423143982944239450257777566971809628121_by_1","typeString":"int_const 2949...(68 digits omitted)...8121"},{"typeIdentifier":"t_rational_14382936099891824927341970188446629554258856083543365916396703111259580806134_by_1","typeString":"int_const 1438...(69 digits omitted)...6134"}],"expression":{"id":758,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"9631:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"G1Point","nodeType":"MemberAccess","referencedDeclaration":6,"src":"9631:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G1Point_$6_storage_ptr_$","typeString":"type(struct Pairing.G1Point storage pointer)"}},"id":762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9631:207:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"9620:218:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":764,"nodeType":"ExpressionStatement","src":"9620:218:0"}]},"id":766,"implemented":true,"kind":"function","modifiers":[],"name":"verifyingKey","nameLocation":"7477:12:0","nodeType":"FunctionDefinition","parameters":{"id":661,"nodeType":"ParameterList","parameters":[],"src":"7489:2:0"},"returnParameters":{"id":665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":664,"mutability":"mutable","name":"vk","nameLocation":"7535:2:0","nodeType":"VariableDeclaration","scope":766,"src":"7515:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey"},"typeName":{"id":663,"nodeType":"UserDefinedTypeName","pathNode":{"id":662,"name":"VerifyingKey","nodeType":"IdentifierPath","referencedDeclaration":650,"src":"7515:12:0"},"referencedDeclaration":650,"src":"7515:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_storage_ptr","typeString":"struct MockVerifier.VerifyingKey"}},"visibility":"internal"}],"src":"7514:24:0"},"scope":1024,"src":"7468:2424:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":889,"nodeType":"Block","src":"9983:846:0","statements":[{"assignments":[778],"declarations":[{"constant":false,"id":778,"mutability":"mutable","name":"snark_scalar_field","nameLocation":"10001:18:0","nodeType":"VariableDeclaration","scope":889,"src":"9993:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":777,"name":"uint256","nodeType":"ElementaryTypeName","src":"9993:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":780,"initialValue":{"hexValue":"3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137","id":779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10022:77:0","typeDescriptions":{"typeIdentifier":"t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1","typeString":"int_const 2188...(69 digits omitted)...5617"},"value":"21888242871839275222246405745257275088548364400416034343698204186575808495617"},"nodeType":"VariableDeclarationStatement","src":"9993:106:0"},{"assignments":[783],"declarations":[{"constant":false,"id":783,"mutability":"mutable","name":"vk","nameLocation":"10129:2:0","nodeType":"VariableDeclaration","scope":889,"src":"10109:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey"},"typeName":{"id":782,"nodeType":"UserDefinedTypeName","pathNode":{"id":781,"name":"VerifyingKey","nodeType":"IdentifierPath","referencedDeclaration":650,"src":"10109:12:0"},"referencedDeclaration":650,"src":"10109:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_storage_ptr","typeString":"struct MockVerifier.VerifyingKey"}},"visibility":"internal"}],"id":786,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":784,"name":"verifyingKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":766,"src":"10134:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_VerifyingKey_$650_memory_ptr_$","typeString":"function () pure returns (struct MockVerifier.VerifyingKey memory)"}},"id":785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10134:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"nodeType":"VariableDeclarationStatement","src":"10109:39:0"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":788,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"10166:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10166:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10181:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10166:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":792,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":783,"src":"10186:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"IC","nodeType":"MemberAccess","referencedDeclaration":649,"src":"10186:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10186:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10166:32:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76657269666965722d6261642d696e707574","id":796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10199:20:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_62f18c0da782e23b7e947e83d22170e983c1918040b5b1bd1c1e3ee5a50cc57a","typeString":"literal_string \"verifier-bad-input\""},"value":"verifier-bad-input"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_62f18c0da782e23b7e947e83d22170e983c1918040b5b1bd1c1e3ee5a50cc57a","typeString":"literal_string \"verifier-bad-input\""}],"id":787,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10158:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10158:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":798,"nodeType":"ExpressionStatement","src":"10158:62:0"},{"assignments":[803],"declarations":[{"constant":false,"id":803,"mutability":"mutable","name":"vk_x","nameLocation":"10300:4:0","nodeType":"VariableDeclaration","scope":889,"src":"10277:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point"},"typeName":{"id":802,"nodeType":"UserDefinedTypeName","pathNode":{"id":801,"name":"Pairing.G1Point","nodeType":"IdentifierPath","referencedDeclaration":6,"src":"10277:15:0"},"referencedDeclaration":6,"src":"10277:15:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_storage_ptr","typeString":"struct Pairing.G1Point"}},"visibility":"internal"}],"id":809,"initialValue":{"arguments":[{"hexValue":"30","id":806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10323:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10326:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":804,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"10307:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"G1Point","nodeType":"MemberAccess","referencedDeclaration":6,"src":"10307:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G1Point_$6_storage_ptr_$","typeString":"type(struct Pairing.G1Point storage pointer)"}},"id":808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10307:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"VariableDeclarationStatement","src":"10277:51:0"},{"body":{"id":849,"nodeType":"Block","src":"10378:184:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":822,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"10400:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":824,"indexExpression":{"id":823,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":811,"src":"10406:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10400:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":825,"name":"snark_scalar_field","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10411:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10400:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"76657269666965722d6774652d736e61726b2d7363616c61722d6669656c64","id":827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10430:33:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb5a586d84bd3fa5140c79c44fd5cd5a5b0e7e59a1ddee2846426486e57f847","typeString":"literal_string \"verifier-gte-snark-scalar-field\""},"value":"verifier-gte-snark-scalar-field"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb5a586d84bd3fa5140c79c44fd5cd5a5b0e7e59a1ddee2846426486e57f847","typeString":"literal_string \"verifier-gte-snark-scalar-field\""}],"id":821,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10392:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10392:72:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":829,"nodeType":"ExpressionStatement","src":"10392:72:0"},{"expression":{"id":847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":830,"name":"vk_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"10478:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":833,"name":"vk_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"10502:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},{"arguments":[{"baseExpression":{"expression":{"id":836,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":783,"src":"10527:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"IC","nodeType":"MemberAccess","referencedDeclaration":649,"src":"10527:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":841,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":838,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":811,"src":"10533:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10537:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10533:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10527:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},{"baseExpression":{"id":842,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"10541:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":844,"indexExpression":{"id":843,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":811,"src":"10547:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10541:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":834,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"10508:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"scalar_mul","nodeType":"MemberAccess","referencedDeclaration":194,"src":"10508:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_G1Point_$6_memory_ptr_$_t_uint256_$returns$_t_struct$_G1Point_$6_memory_ptr_$","typeString":"function (struct Pairing.G1Point memory,uint256) view returns (struct Pairing.G1Point memory)"}},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10508:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"},{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}],"expression":{"id":831,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"10485:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addition","nodeType":"MemberAccess","referencedDeclaration":145,"src":"10485:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$returns$_t_struct$_G1Point_$6_memory_ptr_$","typeString":"function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)"}},"id":846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10485:66:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"10478:73:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":848,"nodeType":"ExpressionStatement","src":"10478:73:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":814,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":811,"src":"10355:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":815,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"10359:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10359:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10355:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":850,"initializationExpression":{"assignments":[811],"declarations":[{"constant":false,"id":811,"mutability":"mutable","name":"i","nameLocation":"10348:1:0","nodeType":"VariableDeclaration","scope":850,"src":"10343:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":810,"name":"uint","nodeType":"ElementaryTypeName","src":"10343:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":813,"initialValue":{"hexValue":"30","id":812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10352:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10343:10:0"},"loopExpression":{"expression":{"id":819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10373:3:0","subExpression":{"id":818,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":811,"src":"10373:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":820,"nodeType":"ExpressionStatement","src":"10373:3:0"},"nodeType":"ForStatement","src":"10338:224:0"},{"expression":{"id":860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":851,"name":"vk_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"10571:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":854,"name":"vk_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"10595:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},{"baseExpression":{"expression":{"id":855,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":783,"src":"10601:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"IC","nodeType":"MemberAccess","referencedDeclaration":649,"src":"10601:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_G1Point_$6_memory_ptr_$dyn_memory_ptr","typeString":"struct Pairing.G1Point memory[] memory"}},"id":858,"indexExpression":{"hexValue":"30","id":857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10607:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10601:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"},{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}],"expression":{"id":852,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"10578:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addition","nodeType":"MemberAccess","referencedDeclaration":145,"src":"10578:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$returns$_t_struct$_G1Point_$6_memory_ptr_$","typeString":"function (struct Pairing.G1Point memory,struct Pairing.G1Point memory) view returns (struct Pairing.G1Point memory)"}},"id":859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10578:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"10571:39:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":861,"nodeType":"ExpressionStatement","src":"10571:39:0"},{"condition":{"id":883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10624:170:0","subExpression":{"arguments":[{"arguments":[{"expression":{"id":866,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":772,"src":"10674:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$660_memory_ptr","typeString":"struct MockVerifier.Proof memory"}},"id":867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"A","nodeType":"MemberAccess","referencedDeclaration":653,"src":"10674:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}],"expression":{"id":864,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"10659:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"negate","nodeType":"MemberAccess","referencedDeclaration":87,"src":"10659:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_G1Point_$6_memory_ptr_$returns$_t_struct$_G1Point_$6_memory_ptr_$","typeString":"function (struct Pairing.G1Point memory) pure returns (struct Pairing.G1Point memory)"}},"id":868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10659:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},{"expression":{"id":869,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":772,"src":"10684:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$660_memory_ptr","typeString":"struct MockVerifier.Proof memory"}},"id":870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"B","nodeType":"MemberAccess","referencedDeclaration":656,"src":"10684:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},{"expression":{"id":871,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":783,"src":"10705:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"alfa1","nodeType":"MemberAccess","referencedDeclaration":636,"src":"10705:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},{"expression":{"id":873,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":783,"src":"10715:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beta2","nodeType":"MemberAccess","referencedDeclaration":639,"src":"10715:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},{"id":875,"name":"vk_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"10737:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},{"expression":{"id":876,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":783,"src":"10743:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gamma2","nodeType":"MemberAccess","referencedDeclaration":642,"src":"10743:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},{"expression":{"id":878,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":772,"src":"10766:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$660_memory_ptr","typeString":"struct MockVerifier.Proof memory"}},"id":879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"C","nodeType":"MemberAccess","referencedDeclaration":659,"src":"10766:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},{"expression":{"id":880,"name":"vk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":783,"src":"10775:2:0","typeDescriptions":{"typeIdentifier":"t_struct$_VerifyingKey_$650_memory_ptr","typeString":"struct MockVerifier.VerifyingKey memory"}},"id":881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"delta2","nodeType":"MemberAccess","referencedDeclaration":645,"src":"10775:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"},{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"},{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"},{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"},{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"},{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"},{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"},{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}],"expression":{"id":862,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"10625:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairingProd4","nodeType":"MemberAccess","referencedDeclaration":630,"src":"10625:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G2Point_$15_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G2Point_$15_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G2Point_$15_memory_ptr_$_t_struct$_G1Point_$6_memory_ptr_$_t_struct$_G2Point_$15_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory,struct Pairing.G1Point memory,struct Pairing.G2Point memory) view returns (bool)"}},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10625:169:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":886,"nodeType":"IfStatement","src":"10620:184:0","trueBody":{"expression":{"hexValue":"31","id":884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10803:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":776,"id":885,"nodeType":"Return","src":"10796:8:0"}},{"expression":{"hexValue":"30","id":887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10821:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":776,"id":888,"nodeType":"Return","src":"10814:8:0"}]},"id":890,"implemented":true,"kind":"function","modifiers":[],"name":"verify","nameLocation":"9906:6:0","nodeType":"FunctionDefinition","parameters":{"id":773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":769,"mutability":"mutable","name":"input","nameLocation":"9927:5:0","nodeType":"VariableDeclaration","scope":890,"src":"9913:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":767,"name":"uint","nodeType":"ElementaryTypeName","src":"9913:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":768,"nodeType":"ArrayTypeName","src":"9913:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":772,"mutability":"mutable","name":"proof","nameLocation":"9947:5:0","nodeType":"VariableDeclaration","scope":890,"src":"9934:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$660_memory_ptr","typeString":"struct MockVerifier.Proof"},"typeName":{"id":771,"nodeType":"UserDefinedTypeName","pathNode":{"id":770,"name":"Proof","nodeType":"IdentifierPath","referencedDeclaration":660,"src":"9934:5:0"},"referencedDeclaration":660,"src":"9934:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$660_storage_ptr","typeString":"struct MockVerifier.Proof"}},"visibility":"internal"}],"src":"9912:41:0"},"returnParameters":{"id":776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":775,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":890,"src":"9977:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":774,"name":"uint","nodeType":"ElementaryTypeName","src":"9977:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9976:6:0"},"scope":1024,"src":"9897:932:0","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1022,"nodeType":"Block","src":"11068:488:0","statements":[{"assignments":[916],"declarations":[{"constant":false,"id":916,"mutability":"mutable","name":"proof","nameLocation":"11091:5:0","nodeType":"VariableDeclaration","scope":1022,"src":"11078:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$660_memory_ptr","typeString":"struct MockVerifier.Proof"},"typeName":{"id":915,"nodeType":"UserDefinedTypeName","pathNode":{"id":914,"name":"Proof","nodeType":"IdentifierPath","referencedDeclaration":660,"src":"11078:5:0"},"referencedDeclaration":660,"src":"11078:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$660_storage_ptr","typeString":"struct MockVerifier.Proof"}},"visibility":"internal"}],"id":917,"nodeType":"VariableDeclarationStatement","src":"11078:18:0"},{"expression":{"id":930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":918,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":916,"src":"11106:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$660_memory_ptr","typeString":"struct MockVerifier.Proof memory"}},"id":920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"A","nodeType":"MemberAccess","referencedDeclaration":653,"src":"11106:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":923,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":895,"src":"11132:1:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":925,"indexExpression":{"hexValue":"30","id":924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11134:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11132:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":926,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":895,"src":"11138:1:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":928,"indexExpression":{"hexValue":"31","id":927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11140:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11138:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":921,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"11116:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"G1Point","nodeType":"MemberAccess","referencedDeclaration":6,"src":"11116:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G1Point_$6_storage_ptr_$","typeString":"type(struct Pairing.G1Point storage pointer)"}},"id":929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11116:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"11106:37:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":931,"nodeType":"ExpressionStatement","src":"11106:37:0"},{"expression":{"id":960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":932,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":916,"src":"11153:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$660_memory_ptr","typeString":"struct MockVerifier.Proof memory"}},"id":934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"B","nodeType":"MemberAccess","referencedDeclaration":656,"src":"11153:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"components":[{"baseExpression":{"baseExpression":{"id":937,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"11180:1:0","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr","typeString":"uint256[2] memory[2] memory"}},"id":939,"indexExpression":{"hexValue":"30","id":938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11182:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11180:4:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":941,"indexExpression":{"hexValue":"30","id":940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11185:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11180:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"baseExpression":{"id":942,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"11189:1:0","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr","typeString":"uint256[2] memory[2] memory"}},"id":944,"indexExpression":{"hexValue":"30","id":943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11191:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11189:4:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":946,"indexExpression":{"hexValue":"31","id":945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11194:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11189:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":947,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11179:18:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},{"components":[{"baseExpression":{"baseExpression":{"id":948,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"11200:1:0","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr","typeString":"uint256[2] memory[2] memory"}},"id":950,"indexExpression":{"hexValue":"31","id":949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11202:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11200:4:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":952,"indexExpression":{"hexValue":"30","id":951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11205:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11200:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"baseExpression":{"id":953,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"11209:1:0","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr","typeString":"uint256[2] memory[2] memory"}},"id":955,"indexExpression":{"hexValue":"31","id":954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11211:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11209:4:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":957,"indexExpression":{"hexValue":"31","id":956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11214:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11209:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":958,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11199:18:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"},{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}],"expression":{"id":935,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"11163:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"G2Point","nodeType":"MemberAccess","referencedDeclaration":15,"src":"11163:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G2Point_$15_storage_ptr_$","typeString":"type(struct Pairing.G2Point storage pointer)"}},"id":959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11163:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"src":"11153:65:0","typeDescriptions":{"typeIdentifier":"t_struct$_G2Point_$15_memory_ptr","typeString":"struct Pairing.G2Point memory"}},"id":961,"nodeType":"ExpressionStatement","src":"11153:65:0"},{"expression":{"id":974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":962,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":916,"src":"11228:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$660_memory_ptr","typeString":"struct MockVerifier.Proof memory"}},"id":964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"C","nodeType":"MemberAccess","referencedDeclaration":659,"src":"11228:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":967,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"11254:1:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":969,"indexExpression":{"hexValue":"30","id":968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11256:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11254:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":970,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"11260:1:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":972,"indexExpression":{"hexValue":"31","id":971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11262:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11260:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":965,"name":"Pairing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"11238:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Pairing_$631_$","typeString":"type(library Pairing)"}},"id":966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"G1Point","nodeType":"MemberAccess","referencedDeclaration":6,"src":"11238:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_G1Point_$6_storage_ptr_$","typeString":"type(struct Pairing.G1Point storage pointer)"}},"id":973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11238:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"src":"11228:37:0","typeDescriptions":{"typeIdentifier":"t_struct$_G1Point_$6_memory_ptr","typeString":"struct Pairing.G1Point memory"}},"id":975,"nodeType":"ExpressionStatement","src":"11228:37:0"},{"assignments":[980],"declarations":[{"constant":false,"id":980,"mutability":"mutable","name":"inputValues","nameLocation":"11289:11:0","nodeType":"VariableDeclaration","scope":1022,"src":"11275:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":978,"name":"uint","nodeType":"ElementaryTypeName","src":"11275:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":979,"nodeType":"ArrayTypeName","src":"11275:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":987,"initialValue":{"arguments":[{"expression":{"id":984,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":909,"src":"11314:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11314:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11303:10:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":981,"name":"uint","nodeType":"ElementaryTypeName","src":"11307:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":982,"nodeType":"ArrayTypeName","src":"11307:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11303:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11275:52:0"},{"body":{"id":1007,"nodeType":"Block","src":"11375:50:0","statements":[{"expression":{"id":1005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":999,"name":"inputValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":980,"src":"11389:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":1001,"indexExpression":{"id":1000,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":989,"src":"11401:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11389:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1002,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":909,"src":"11406:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":1004,"indexExpression":{"id":1003,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":989,"src":"11412:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11406:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11389:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1006,"nodeType":"ExpressionStatement","src":"11389:25:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":992,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":989,"src":"11353:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":993,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":909,"src":"11357:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"11357:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11353:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1008,"initializationExpression":{"assignments":[989],"declarations":[{"constant":false,"id":989,"mutability":"mutable","name":"i","nameLocation":"11346:1:0","nodeType":"VariableDeclaration","scope":1008,"src":"11341:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":988,"name":"uint","nodeType":"ElementaryTypeName","src":"11341:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":991,"initialValue":{"hexValue":"30","id":990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11350:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11341:10:0"},"loopExpression":{"expression":{"id":997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11371:3:0","subExpression":{"id":996,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":989,"src":"11371:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":998,"nodeType":"ExpressionStatement","src":"11371:3:0"},"nodeType":"ForStatement","src":"11337:88:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1010,"name":"inputValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":980,"src":"11445:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1011,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":916,"src":"11458:5:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proof_$660_memory_ptr","typeString":"struct MockVerifier.Proof memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_struct$_Proof_$660_memory_ptr","typeString":"struct MockVerifier.Proof memory"}],"id":1009,"name":"verify","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":890,"src":"11438:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_uint256_$dyn_memory_ptr_$_t_struct$_Proof_$660_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256[] memory,struct MockVerifier.Proof memory) view returns (uint256)"}},"id":1012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11438:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11468:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11438:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1020,"nodeType":"Block","src":"11513:37:0","statements":[{"expression":{"hexValue":"66616c7365","id":1018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11534:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":913,"id":1019,"nodeType":"Return","src":"11527:12:0"}]},"id":1021,"nodeType":"IfStatement","src":"11434:116:0","trueBody":{"id":1017,"nodeType":"Block","src":"11471:36:0","statements":[{"expression":{"hexValue":"74727565","id":1015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11492:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":913,"id":1016,"nodeType":"Return","src":"11485:11:0"}]}}]},"documentation":{"id":891,"nodeType":"StructuredDocumentation","src":"10834:42:0","text":"@return r bool true if proof is valid"},"functionSelector":"f5c9d69e","id":1023,"implemented":true,"kind":"function","modifiers":[],"name":"verifyProof","nameLocation":"10890:11:0","nodeType":"FunctionDefinition","parameters":{"id":910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":895,"mutability":"mutable","name":"a","nameLocation":"10930:1:0","nodeType":"VariableDeclaration","scope":1023,"src":"10915:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":892,"name":"uint","nodeType":"ElementaryTypeName","src":"10915:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":894,"length":{"hexValue":"32","id":893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10920:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"10915:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"visibility":"internal"},{"constant":false,"id":901,"mutability":"mutable","name":"b","nameLocation":"10963:1:0","nodeType":"VariableDeclaration","scope":1023,"src":"10945:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr","typeString":"uint256[2][2]"},"typeName":{"baseType":{"baseType":{"id":896,"name":"uint","nodeType":"ElementaryTypeName","src":"10945:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":898,"length":{"hexValue":"32","id":897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10950:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"10945:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"id":900,"length":{"hexValue":"32","id":899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10953:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"10945:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr","typeString":"uint256[2][2]"}},"visibility":"internal"},{"constant":false,"id":905,"mutability":"mutable","name":"c","nameLocation":"10993:1:0","nodeType":"VariableDeclaration","scope":1023,"src":"10978:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":902,"name":"uint","nodeType":"ElementaryTypeName","src":"10978:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":904,"length":{"hexValue":"32","id":903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10983:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"10978:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"visibility":"internal"},{"constant":false,"id":909,"mutability":"mutable","name":"input","nameLocation":"11023:5:0","nodeType":"VariableDeclaration","scope":1023,"src":"11008:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":906,"name":"uint","nodeType":"ElementaryTypeName","src":"11008:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":908,"length":{"hexValue":"32","id":907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11013:1:0","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"11008:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"visibility":"internal"}],"src":"10901:137:0"},"returnParameters":{"id":913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":912,"mutability":"mutable","name":"r","nameLocation":"11065:1:0","nodeType":"VariableDeclaration","scope":1023,"src":"11060:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":911,"name":"bool","nodeType":"ElementaryTypeName","src":"11060:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11059:8:0"},"scope":1024,"src":"10881:675:0","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":1025,"src":"7121:4437:0","usedErrors":[]}],"src":"1232:10327:0"},"id":0}},"contracts":{"contracts/mocks/mockVerifier.sol":{"MockVerifier":{"abi":[{"inputs":[{"internalType":"uint256[2]","name":"a","type":"uint256[2]"},{"internalType":"uint256[2][2]","name":"b","type":"uint256[2][2]"},{"internalType":"uint256[2]","name":"c","type":"uint256[2]"},{"internalType":"uint256[2]","name":"input","type":"uint256[2]"}],"name":"verifyProof","outputs":[{"internalType":"bool","name":"r","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50611123806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f5c9d69e14610030575b600080fd5b61004361003e366004610f96565b610057565b604051901515815260200160405180910390f35b6000610061610dbf565b60408051808201825287518152602080890151818301529083528151608081018352875151818401908152885183015160608084019190915290825283518085018552898401805151825251840151818501528284015284830191909152825180840184528751815287830151818401528484015282516002808252918101845260009390928301908036833701905050905060005b60028110156101465784816002811061011257610112611036565b602002015182828151811061012957610129611036565b60209081029190910101528061013e81611062565b9150506100f7565b50610151818361016f565b61016057600192505050610167565b6000925050505b949350505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018161019b610366565b9050806080015151855160016101b1919061107d565b146101f85760405162461bcd60e51b81526020600482015260126024820152711d995c9a599a595c8b5898590b5a5b9c1d5d60721b60448201526064015b60405180910390fd5b604080518082019091526000808252602082018190525b86518110156102e9578387828151811061022b5761022b611036565b6020026020010151106102805760405162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c640060448201526064016101ef565b6102d5826102d08560800151846001610299919061107d565b815181106102a9576102a9611036565b60200260200101518a85815181106102c3576102c3611036565b602002602001015161070a565b6107a6565b9150806102e181611062565b91505061020f565b5061031281836080015160008151811061030557610305611036565b60200260200101516107a6565b9050610348610324866000015161083e565b8660200151846000015185602001518587604001518b6040015189606001516108dd565b6103585760019350505050610360565b600093505050505b92915050565b61036e610e10565b6040805180820182527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e281527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266020808301919091529083528151608080820184527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c8285019081527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab606080850191909152908352845180860186527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a781527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8818601528385015285840192909252835180820185527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28186018181527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed838601819052908352865180880188527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b8082527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa828901819052858901929092528989019490945287518086018952808901938452808701929092529181528651808801885292835282860191909152938401529084019190915281516003808252918101909252816020015b604080518082019091526000808252602082015281526020019060019003908161057b57505060808201908152604080518082019091527f0f13deecd2bb97a4a72138125f42fb6cf7a7d268c07b6be71ea235c128ec8b0d81527f141a084ea96151edd848da5554d22ffe50108204685faf2953c88cc5ecd13afc60208201529051805160009061060e5761060e611036565b602002602001018190525060405180604001604052807f0584139dea87bfc802b78d16336c5507427cdbd3b485ed93311612dd9dae56b981526020017f0ca856036d046756064d3e3efb84c27f6d3589ab9e8f9363905e5a9238649310815250816080015160018151811061068557610685611036565b602002602001018190525060405180604001604052807f06851ff62db30413d0be9360cdbb12813682741de8743b6f6e72bebf376dffd981526020017f1fcc740e777501125b58a260a9d9a31bead97d19585568f490c98960091433f681525081608001516002815181106106fc576106fc611036565b602002602001018190525090565b6040805180820190915260008082526020820152610726610e61565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080156107595761075b565bfe5b508061079e5760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b60448201526064016101ef565b505092915050565b60408051808201909152600080825260208201526107c2610e7f565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa905080801561075957508061079e5760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b60448201526064016101ef565b604080518082019091526000808252602082015281517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479015801561088557506020830151155b156108a55750506040805180820190915260008082526020820152919050565b6040518060400160405280846000015181526020018285602001516108ca9190611095565b6108d490846110b7565b90529392505050565b60408051600480825260a08201909252600091829190816020015b60408051808201909152600080825260208201528152602001906001900390816108f857505060408051600480825260a0820190925291925060009190602082015b610942610e9d565b81526020019060019003908161093a5790505090508a8260008151811061096b5761096b611036565b6020026020010181905250888260018151811061098a5761098a611036565b602002602001018190525086826002815181106109a9576109a9611036565b602002602001018190525084826003815181106109c8576109c8611036565b602002602001018190525089816000815181106109e7576109e7611036565b60200260200101819052508781600181518110610a0657610a06611036565b60200260200101819052508581600281518110610a2557610a25611036565b60200260200101819052508381600381518110610a4457610a44611036565b6020026020010181905250610a598282610a68565b9b9a5050505050505050505050565b60008151835114610ab45760405162461bcd60e51b81526020600482015260166024820152751c185a5c9a5b99cb5b195b99dd1a1ccb59985a5b195960521b60448201526064016101ef565b82516000610ac38260066110ce565b905060008167ffffffffffffffff811115610ae057610ae0610ef9565b604051908082528060200260200182016040528015610b09578160200160208202803683370190505b50905060005b83811015610d4457868181518110610b2957610b29611036565b60200260200101516000015182826006610b4391906110ce565b610b4e90600061107d565b81518110610b5e57610b5e611036565b602002602001018181525050868181518110610b7c57610b7c611036565b60200260200101516020015182826006610b9691906110ce565b610ba190600161107d565b81518110610bb157610bb1611036565b602002602001018181525050858181518110610bcf57610bcf611036565b6020908102919091010151515182610be88360066110ce565b610bf390600261107d565b81518110610c0357610c03611036565b602002602001018181525050858181518110610c2157610c21611036565b60209081029190910181015151015182610c3c8360066110ce565b610c4790600361107d565b81518110610c5757610c57611036565b602002602001018181525050858181518110610c7557610c75611036565b602002602001015160200151600060028110610c9357610c93611036565b602002015182610ca48360066110ce565b610caf90600461107d565b81518110610cbf57610cbf611036565b602002602001018181525050858181518110610cdd57610cdd611036565b602002602001015160200151600160028110610cfb57610cfb611036565b602002015182610d0c8360066110ce565b610d1790600561107d565b81518110610d2757610d27611036565b602090810291909101015280610d3c81611062565b915050610b0f565b50610d4d610ebd565b6000602082602086026020860160086107d05a03fa9050808015610759575080610db15760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016101ef565b505115159695505050505050565b6040805160a081019091526000606082018181526080830191909152815260208101610de9610e9d565b8152602001610e0b604051806040016040528060008152602001600081525090565b905290565b6040805160e08101909152600060a0820181815260c0830191909152815260208101610e3a610e9d565b8152602001610e47610e9d565b8152602001610e54610e9d565b8152602001606081525090565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280610eb0610edb565b8152602001610e0b610edb565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610f4057634e487b7160e01b600052604160045260246000fd5b60405290565b600082601f830112610f5757600080fd5b610f5f610f0f565b806040840185811115610f7157600080fd5b845b81811015610f8b578035845260209384019301610f73565b509095945050505050565b6000806000806101408587031215610fad57600080fd5b610fb78686610f46565b9350604086605f870112610fca57600080fd5b610fd2610f0f565b8060c0880189811115610fe457600080fd5b8389015b8181101561100957610ffa8b82610f46565b84526020909301928401610fe8565b508196506110178a82610f46565b95505050505061102b866101008701610f46565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156110765761107661104c565b5060010190565b600082198211156110905761109061104c565b500190565b6000826110b257634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156110c9576110c961104c565b500390565b60008160001904831182151516156110e8576110e861104c565b50029056fea26469706673582212201f2defe83f0fecceb9b59f3594b99edc189c4f3b137fbeb3d2dfd46aad30610a64736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1123 DUP1 PUSH2 0x20 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 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF5C9D69E EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xF96 JUMP JUMPDEST PUSH2 0x57 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x61 PUSH2 0xDBF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP8 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP10 ADD MLOAD DUP2 DUP4 ADD MSTORE SWAP1 DUP4 MSTORE DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP8 MLOAD MLOAD DUP2 DUP5 ADD SWAP1 DUP2 MSTORE DUP9 MLOAD DUP4 ADD MLOAD PUSH1 0x60 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE DUP10 DUP5 ADD DUP1 MLOAD MLOAD DUP3 MSTORE MLOAD DUP5 ADD MLOAD DUP2 DUP6 ADD MSTORE DUP3 DUP5 ADD MSTORE DUP5 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE DUP8 MLOAD DUP2 MSTORE DUP8 DUP4 ADD MLOAD DUP2 DUP5 ADD MSTORE DUP5 DUP5 ADD MSTORE DUP3 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE SWAP2 DUP2 ADD DUP5 MSTORE PUSH1 0x0 SWAP4 SWAP1 SWAP3 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x146 JUMPI DUP5 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x112 JUMPI PUSH2 0x112 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x129 JUMPI PUSH2 0x129 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP1 PUSH2 0x13E DUP2 PUSH2 0x1062 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF7 JUMP JUMPDEST POP PUSH2 0x151 DUP2 DUP4 PUSH2 0x16F JUMP JUMPDEST PUSH2 0x160 JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x167 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 PUSH2 0x19B PUSH2 0x366 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x80 ADD MLOAD MLOAD DUP6 MLOAD PUSH1 0x1 PUSH2 0x1B1 SWAP2 SWAP1 PUSH2 0x107D JUMP JUMPDEST EQ PUSH2 0x1F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x1D995C9A599A595C8B5898590B5A5B9C1D5D PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE JUMPDEST DUP7 MLOAD DUP2 LT ISZERO PUSH2 0x2E9 JUMPI DUP4 DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x22B JUMPI PUSH2 0x22B PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT PUSH2 0x280 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76657269666965722D6774652D736E61726B2D7363616C61722D6669656C6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1EF JUMP JUMPDEST PUSH2 0x2D5 DUP3 PUSH2 0x2D0 DUP6 PUSH1 0x80 ADD MLOAD DUP5 PUSH1 0x1 PUSH2 0x299 SWAP2 SWAP1 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x2A9 JUMPI PUSH2 0x2A9 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP11 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x2C3 JUMPI PUSH2 0x2C3 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x70A JUMP JUMPDEST PUSH2 0x7A6 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x2E1 DUP2 PUSH2 0x1062 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x20F JUMP JUMPDEST POP PUSH2 0x312 DUP2 DUP4 PUSH1 0x80 ADD MLOAD PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x305 JUMPI PUSH2 0x305 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x7A6 JUMP JUMPDEST SWAP1 POP PUSH2 0x348 PUSH2 0x324 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x83E JUMP JUMPDEST DUP7 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP6 DUP8 PUSH1 0x40 ADD MLOAD DUP12 PUSH1 0x40 ADD MLOAD DUP10 PUSH1 0x60 ADD MLOAD PUSH2 0x8DD JUMP JUMPDEST PUSH2 0x358 JUMPI PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x360 JUMP JUMPDEST PUSH1 0x0 SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x36E PUSH2 0xE10 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH32 0x2D4D9AA7E302D9DF41749D5507949D05DBEA33FBB16C643B22F599A2BE6DF2E2 DUP2 MSTORE PUSH32 0x14BEDD503C37CEB061D8EC60209FE345CE89830A19230301F076CAFF004D1926 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP4 MSTORE DUP2 MLOAD PUSH1 0x80 DUP1 DUP3 ADD DUP5 MSTORE PUSH32 0x967032FCBF776D1AFC985F88877F182D38480A653F2DECAA9794CBC3BF3060C DUP3 DUP6 ADD SWAP1 DUP2 MSTORE PUSH32 0xE187847AD4C798374D0D6732BF501847DD68BC0E071241E0213BC7FC13DB7AB PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP4 MSTORE DUP5 MLOAD DUP1 DUP7 ADD DUP7 MSTORE PUSH32 0x304CFBD1E08A704A99F5E847D93F8C3CAAFDDEC46B7A0D379DA69A4D112346A7 DUP2 MSTORE PUSH32 0x1739C1B1A457A8C7313123D24D2F9192F896B7C63EEA05A9D57F06547AD0CEC8 DUP2 DUP7 ADD MSTORE DUP4 DUP6 ADD MSTORE DUP6 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP4 MLOAD DUP1 DUP3 ADD DUP6 MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 DUP2 DUP7 ADD DUP2 DUP2 MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED DUP4 DUP7 ADD DUP2 SWAP1 MSTORE SWAP1 DUP4 MSTORE DUP7 MLOAD DUP1 DUP9 ADD DUP9 MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B DUP1 DUP3 MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA DUP3 DUP10 ADD DUP2 SWAP1 MSTORE DUP6 DUP10 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP10 DUP10 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP8 MLOAD DUP1 DUP7 ADD DUP10 MSTORE DUP1 DUP10 ADD SWAP4 DUP5 MSTORE DUP1 DUP8 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 DUP2 MSTORE DUP7 MLOAD DUP1 DUP9 ADD DUP9 MSTORE SWAP3 DUP4 MSTORE DUP3 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP5 ADD MSTORE SWAP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH1 0x3 DUP1 DUP3 MSTORE SWAP2 DUP2 ADD SWAP1 SWAP3 MSTORE DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x57B JUMPI POP POP PUSH1 0x80 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH32 0xF13DEECD2BB97A4A72138125F42FB6CF7A7D268C07B6BE71EA235C128EC8B0D DUP2 MSTORE PUSH32 0x141A084EA96151EDD848DA5554D22FFE50108204685FAF2953C88CC5ECD13AFC PUSH1 0x20 DUP3 ADD MSTORE SWAP1 MLOAD DUP1 MLOAD PUSH1 0x0 SWAP1 PUSH2 0x60E JUMPI PUSH2 0x60E PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0x584139DEA87BFC802B78D16336C5507427CDBD3B485ED93311612DD9DAE56B9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0xCA856036D046756064D3E3EFB84C27F6D3589AB9E8F9363905E5A9238649310 DUP2 MSTORE POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x685 JUMPI PUSH2 0x685 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0x6851FF62DB30413D0BE9360CDBB12813682741DE8743B6F6E72BEBF376DFFD9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x1FCC740E777501125B58A260A9D9A31BEAD97D19585568F490C98960091433F6 DUP2 MSTORE POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x2 DUP2 MLOAD DUP2 LT PUSH2 0x6FC JUMPI PUSH2 0x6FC PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x726 PUSH2 0xE61 JUMP JUMPDEST DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 PUSH1 0x60 DUP4 PUSH1 0x80 DUP5 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x759 JUMPI PUSH2 0x75B JUMP JUMPDEST INVALID JUMPDEST POP DUP1 PUSH2 0x79E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x1C185A5C9A5B99CB5B5D5B0B59985A5B1959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1EF JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x7C2 PUSH2 0xE7F JUMP JUMPDEST DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD PUSH1 0x40 DUP4 ADD MSTORE DUP4 ADD MLOAD PUSH1 0x60 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP4 PUSH1 0xC0 DUP5 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x759 JUMPI POP DUP1 PUSH2 0x79E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x1C185A5C9A5B99CB5859190B59985A5B1959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1EF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SWAP1 ISZERO DUP1 ISZERO PUSH2 0x885 JUMPI POP PUSH1 0x20 DUP4 ADD MLOAD ISZERO JUMPDEST ISZERO PUSH2 0x8A5 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x8CA SWAP2 SWAP1 PUSH2 0x1095 JUMP JUMPDEST PUSH2 0x8D4 SWAP1 DUP5 PUSH2 0x10B7 JUMP JUMPDEST SWAP1 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP1 DUP3 MSTORE PUSH1 0xA0 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x8F8 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP1 DUP3 MSTORE PUSH1 0xA0 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP3 ADD JUMPDEST PUSH2 0x942 PUSH2 0xE9D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x93A JUMPI SWAP1 POP POP SWAP1 POP DUP11 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x96B JUMPI PUSH2 0x96B PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP9 DUP3 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x98A JUMPI PUSH2 0x98A PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP7 DUP3 PUSH1 0x2 DUP2 MLOAD DUP2 LT PUSH2 0x9A9 JUMPI PUSH2 0x9A9 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP5 DUP3 PUSH1 0x3 DUP2 MLOAD DUP2 LT PUSH2 0x9C8 JUMPI PUSH2 0x9C8 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP10 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x9E7 JUMPI PUSH2 0x9E7 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP8 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0xA06 JUMPI PUSH2 0xA06 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP6 DUP2 PUSH1 0x2 DUP2 MLOAD DUP2 LT PUSH2 0xA25 JUMPI PUSH2 0xA25 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP4 DUP2 PUSH1 0x3 DUP2 MLOAD DUP2 LT PUSH2 0xA44 JUMPI PUSH2 0xA44 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0xA59 DUP3 DUP3 PUSH2 0xA68 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0xAB4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1C185A5C9A5B99CB5B195B99DD1A1CCB59985A5B1959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1EF JUMP JUMPDEST DUP3 MLOAD PUSH1 0x0 PUSH2 0xAC3 DUP3 PUSH1 0x6 PUSH2 0x10CE JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAE0 JUMPI PUSH2 0xAE0 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xB09 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD44 JUMPI DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xB29 JUMPI PUSH2 0xB29 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD DUP3 DUP3 PUSH1 0x6 PUSH2 0xB43 SWAP2 SWAP1 PUSH2 0x10CE JUMP JUMPDEST PUSH2 0xB4E SWAP1 PUSH1 0x0 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB5E JUMPI PUSH2 0xB5E PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xB7C JUMPI PUSH2 0xB7C PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP3 DUP3 PUSH1 0x6 PUSH2 0xB96 SWAP2 SWAP1 PUSH2 0x10CE JUMP JUMPDEST PUSH2 0xBA1 SWAP1 PUSH1 0x1 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xBB1 JUMPI PUSH2 0xBB1 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xBCF JUMPI PUSH2 0xBCF PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD MLOAD MLOAD DUP3 PUSH2 0xBE8 DUP4 PUSH1 0x6 PUSH2 0x10CE JUMP JUMPDEST PUSH2 0xBF3 SWAP1 PUSH1 0x2 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xC03 JUMPI PUSH2 0xC03 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xC21 JUMPI PUSH2 0xC21 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD MLOAD ADD MLOAD DUP3 PUSH2 0xC3C DUP4 PUSH1 0x6 PUSH2 0x10CE JUMP JUMPDEST PUSH2 0xC47 SWAP1 PUSH1 0x3 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xC57 JUMPI PUSH2 0xC57 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xC75 JUMPI PUSH2 0xC75 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x0 PUSH1 0x2 DUP2 LT PUSH2 0xC93 JUMPI PUSH2 0xC93 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP3 PUSH2 0xCA4 DUP4 PUSH1 0x6 PUSH2 0x10CE JUMP JUMPDEST PUSH2 0xCAF SWAP1 PUSH1 0x4 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xCBF JUMPI PUSH2 0xCBF PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xCDD JUMPI PUSH2 0xCDD PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x2 DUP2 LT PUSH2 0xCFB JUMPI PUSH2 0xCFB PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP3 PUSH2 0xD0C DUP4 PUSH1 0x6 PUSH2 0x10CE JUMP JUMPDEST PUSH2 0xD17 SWAP1 PUSH1 0x5 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xD27 JUMPI PUSH2 0xD27 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP1 PUSH2 0xD3C DUP2 PUSH2 0x1062 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB0F JUMP JUMPDEST POP PUSH2 0xD4D PUSH2 0xEBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 PUSH1 0x20 DUP7 MUL PUSH1 0x20 DUP7 ADD PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x759 JUMPI POP DUP1 PUSH2 0xDB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x1C185A5C9A5B99CB5BDC18DBD9194B59985A5B1959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1EF JUMP JUMPDEST POP MLOAD ISZERO ISZERO SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 PUSH1 0x60 DUP3 ADD DUP2 DUP2 MSTORE PUSH1 0x80 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0xDE9 PUSH2 0xE9D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE0B PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 PUSH1 0xA0 DUP3 ADD DUP2 DUP2 MSTORE PUSH1 0xC0 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0xE3A PUSH2 0xE9D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE47 PUSH2 0xE9D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE54 PUSH2 0xE9D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0xEB0 PUSH2 0xEDB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE0B PUSH2 0xEDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xF40 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF5F PUSH2 0xF0F JUMP JUMPDEST DUP1 PUSH1 0x40 DUP5 ADD DUP6 DUP2 GT ISZERO PUSH2 0xF71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF8B JUMPI DUP1 CALLDATALOAD DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 ADD PUSH2 0xF73 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x140 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xFAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFB7 DUP7 DUP7 PUSH2 0xF46 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 PUSH1 0x5F DUP8 ADD SLT PUSH2 0xFCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFD2 PUSH2 0xF0F JUMP JUMPDEST DUP1 PUSH1 0xC0 DUP9 ADD DUP10 DUP2 GT ISZERO PUSH2 0xFE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP10 ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1009 JUMPI PUSH2 0xFFA DUP12 DUP3 PUSH2 0xF46 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 DUP5 ADD PUSH2 0xFE8 JUMP JUMPDEST POP DUP2 SWAP7 POP PUSH2 0x1017 DUP11 DUP3 PUSH2 0xF46 JUMP JUMPDEST SWAP6 POP POP POP POP POP PUSH2 0x102B DUP7 PUSH2 0x100 DUP8 ADD PUSH2 0xF46 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1076 JUMPI PUSH2 0x1076 PUSH2 0x104C JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1090 JUMPI PUSH2 0x1090 PUSH2 0x104C JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x10B2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x10C9 JUMPI PUSH2 0x10C9 PUSH2 0x104C JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x10E8 JUMPI PUSH2 0x10E8 PUSH2 0x104C JUMP JUMPDEST POP MUL SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1F 0x2D 0xEF 0xE8 EXTCODEHASH 0xF 0xEC 0xCE 0xB9 0xB5 SWAP16 CALLDATALOAD SWAP5 0xB9 SWAP15 0xDC XOR SWAP13 0x4F EXTCODESIZE SGT PUSH32 0xBEB3D2DFD46AAD30610A64736F6C634300080A00330000000000000000000000 ","sourceMap":"7121:4437:0:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@addition_145":{"entryPoint":1958,"id":145,"parameterSlots":2,"returnSlots":1},"@negate_87":{"entryPoint":2110,"id":87,"parameterSlots":1,"returnSlots":1},"@pairingProd4_630":{"entryPoint":2269,"id":630,"parameterSlots":8,"returnSlots":1},"@pairing_360":{"entryPoint":2664,"id":360,"parameterSlots":2,"returnSlots":1},"@scalar_mul_194":{"entryPoint":1802,"id":194,"parameterSlots":2,"returnSlots":1},"@verifyProof_1023":{"entryPoint":87,"id":1023,"parameterSlots":4,"returnSlots":1},"@verify_890":{"entryPoint":367,"id":890,"parameterSlots":2,"returnSlots":1},"@verifyingKey_766":{"entryPoint":870,"id":766,"parameterSlots":0,"returnSlots":1},"abi_decode_array_uint256":{"entryPoint":3910,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_uint256_$2_memory_ptrt_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptrt_array$_t_uint256_$2_memory_ptrt_array$_t_uint256_$2_memory_ptr":{"entryPoint":3990,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_62f18c0da782e23b7e947e83d22170e983c1918040b5b1bd1c1e3ee5a50cc57a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_63b4943691e0891cf5adcfe6e3eb490783b718accceadc0166bc4e56cf1df5de__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8cb5a586d84bd3fa5140c79c44fd5cd5a5b0e7e59a1ddee2846426486e57f847__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d4c505601ed3bad1341fbb75434dd6541f91bae974d0b2bc28d5491a5c4a21cc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e428a53e578d13ee2fc3b8849114332d6a94afed893fa747a37e281039728688__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f3220b3ef654fc0d9a13e2b6d8c956cb8fb22df61a3a050ded181d8902069fe5__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory":{"entryPoint":3855,"id":null,"parameterSlots":0,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":4221,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":4302,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":4279,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":4194,"id":null,"parameterSlots":1,"returnSlots":1},"mod_t_uint256":{"entryPoint":4245,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":4172,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":4150,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3833,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5307:1","statements":[{"nodeType":"YulBlock","src":"6:3:1","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:1","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:1","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:1","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:1"},"nodeType":"YulFunctionCall","src":"66:20:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:1"},"nodeType":"YulFunctionCall","src":"56:31:1"},"nodeType":"YulExpressionStatement","src":"56:31:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:1"},"nodeType":"YulFunctionCall","src":"96:15:1"},"nodeType":"YulExpressionStatement","src":"96:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:1"},"nodeType":"YulFunctionCall","src":"120:15:1"},"nodeType":"YulExpressionStatement","src":"120:15:1"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:1"},{"body":{"nodeType":"YulBlock","src":"187:302:1","statements":[{"nodeType":"YulAssignment","src":"197:19:1","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"213:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"207:5:1"},"nodeType":"YulFunctionCall","src":"207:9:1"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"197:6:1"}]},{"nodeType":"YulVariableDeclaration","src":"225:33:1","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"247:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:1","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"243:3:1"},"nodeType":"YulFunctionCall","src":"243:15:1"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"229:10:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"341:111:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"362:1:1","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"369:3:1","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"374:10:1","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"365:3:1"},"nodeType":"YulFunctionCall","src":"365:20:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"355:6:1"},"nodeType":"YulFunctionCall","src":"355:31:1"},"nodeType":"YulExpressionStatement","src":"355:31:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"406:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"409:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"399:6:1"},"nodeType":"YulFunctionCall","src":"399:15:1"},"nodeType":"YulExpressionStatement","src":"399:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"434:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"437:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"427:6:1"},"nodeType":"YulFunctionCall","src":"427:15:1"},"nodeType":"YulExpressionStatement","src":"427:15:1"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"276:10:1"},{"kind":"number","nodeType":"YulLiteral","src":"288:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"273:2:1"},"nodeType":"YulFunctionCall","src":"273:34:1"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"312:10:1"},{"name":"memPtr","nodeType":"YulIdentifier","src":"324:6:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"309:2:1"},"nodeType":"YulFunctionCall","src":"309:22:1"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"270:2:1"},"nodeType":"YulFunctionCall","src":"270:62:1"},"nodeType":"YulIf","src":"267:185:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"468:2:1","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"472:10:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"461:6:1"},"nodeType":"YulFunctionCall","src":"461:22:1"},"nodeType":"YulExpressionStatement","src":"461:22:1"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"176:6:1","type":""}],"src":"146:343:1"},{"body":{"nodeType":"YulBlock","src":"554:419:1","statements":[{"body":{"nodeType":"YulBlock","src":"603:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"612:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"615:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"605:6:1"},"nodeType":"YulFunctionCall","src":"605:12:1"},"nodeType":"YulExpressionStatement","src":"605:12:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"582:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"590:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"578:3:1"},"nodeType":"YulFunctionCall","src":"578:17:1"},{"name":"end","nodeType":"YulIdentifier","src":"597:3:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"574:3:1"},"nodeType":"YulFunctionCall","src":"574:27:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"567:6:1"},"nodeType":"YulFunctionCall","src":"567:35:1"},"nodeType":"YulIf","src":"564:55:1"},{"nodeType":"YulVariableDeclaration","src":"628:28:1","value":{"arguments":[],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"639:15:1"},"nodeType":"YulFunctionCall","src":"639:17:1"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"632:3:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"665:16:1","value":{"name":"dst","nodeType":"YulIdentifier","src":"678:3:1"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"669:5:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"690:29:1","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"708:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"716:2:1","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:1"},"nodeType":"YulFunctionCall","src":"704:15:1"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"694:6:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"747:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"756:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"759:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"749:6:1"},"nodeType":"YulFunctionCall","src":"749:12:1"},"nodeType":"YulExpressionStatement","src":"749:12:1"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"734:6:1"},{"name":"end","nodeType":"YulIdentifier","src":"742:3:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"731:2:1"},"nodeType":"YulFunctionCall","src":"731:15:1"},"nodeType":"YulIf","src":"728:35:1"},{"nodeType":"YulVariableDeclaration","src":"772:17:1","value":{"name":"offset","nodeType":"YulIdentifier","src":"783:6:1"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"776:3:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"856:88:1","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"877:3:1"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"895:3:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"882:12:1"},"nodeType":"YulFunctionCall","src":"882:17:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"870:6:1"},"nodeType":"YulFunctionCall","src":"870:30:1"},"nodeType":"YulExpressionStatement","src":"870:30:1"},{"nodeType":"YulAssignment","src":"913:21:1","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"924:3:1"},{"kind":"number","nodeType":"YulLiteral","src":"929:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"920:3:1"},"nodeType":"YulFunctionCall","src":"920:14:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"913:3:1"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"809:3:1"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"814:6:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"806:2:1"},"nodeType":"YulFunctionCall","src":"806:15:1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"822:25:1","statements":[{"nodeType":"YulAssignment","src":"824:21:1","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"835:3:1"},{"kind":"number","nodeType":"YulLiteral","src":"840:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"831:3:1"},"nodeType":"YulFunctionCall","src":"831:14:1"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"824:3:1"}]}]},"pre":{"nodeType":"YulBlock","src":"802:3:1","statements":[]},"src":"798:146:1"},{"nodeType":"YulAssignment","src":"953:14:1","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"962:5:1"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"953:5:1"}]}]},"name":"abi_decode_array_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"528:6:1","type":""},{"name":"end","nodeType":"YulTypedName","src":"536:3:1","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"544:5:1","type":""}],"src":"494:479:1"},{"body":{"nodeType":"YulBlock","src":"1214:743:1","statements":[{"body":{"nodeType":"YulBlock","src":"1261:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1270:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1273:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1263:6:1"},"nodeType":"YulFunctionCall","src":"1263:12:1"},"nodeType":"YulExpressionStatement","src":"1263:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1235:7:1"},{"name":"headStart","nodeType":"YulIdentifier","src":"1244:9:1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1231:3:1"},"nodeType":"YulFunctionCall","src":"1231:23:1"},{"kind":"number","nodeType":"YulLiteral","src":"1256:3:1","type":"","value":"320"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1227:3:1"},"nodeType":"YulFunctionCall","src":"1227:33:1"},"nodeType":"YulIf","src":"1224:53:1"},{"nodeType":"YulAssignment","src":"1286:54:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1321:9:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1332:7:1"}],"functionName":{"name":"abi_decode_array_uint256","nodeType":"YulIdentifier","src":"1296:24:1"},"nodeType":"YulFunctionCall","src":"1296:44:1"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1286:6:1"}]},{"nodeType":"YulVariableDeclaration","src":"1349:12:1","value":{"kind":"number","nodeType":"YulLiteral","src":"1359:2:1","type":"","value":"64"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1353:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"1414:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1423:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1426:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1416:6:1"},"nodeType":"YulFunctionCall","src":"1416:12:1"},"nodeType":"YulExpressionStatement","src":"1416:12:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1388:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"1399:2:1","type":"","value":"95"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1384:3:1"},"nodeType":"YulFunctionCall","src":"1384:18:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1404:7:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1380:3:1"},"nodeType":"YulFunctionCall","src":"1380:32:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1373:6:1"},"nodeType":"YulFunctionCall","src":"1373:40:1"},"nodeType":"YulIf","src":"1370:60:1"},{"nodeType":"YulVariableDeclaration","src":"1439:28:1","value":{"arguments":[],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1450:15:1"},"nodeType":"YulFunctionCall","src":"1450:17:1"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1443:3:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1476:16:1","value":{"name":"dst","nodeType":"YulIdentifier","src":"1489:3:1"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1480:5:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1501:33:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1519:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"1530:3:1","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1515:3:1"},"nodeType":"YulFunctionCall","src":"1515:19:1"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"1505:6:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"1566:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1575:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1578:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1568:6:1"},"nodeType":"YulFunctionCall","src":"1568:12:1"},"nodeType":"YulExpressionStatement","src":"1568:12:1"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"1549:6:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1557:7:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1546:2:1"},"nodeType":"YulFunctionCall","src":"1546:19:1"},"nodeType":"YulIf","src":"1543:39:1"},{"nodeType":"YulVariableDeclaration","src":"1591:29:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1606:9:1"},{"name":"_1","nodeType":"YulIdentifier","src":"1617:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1602:3:1"},"nodeType":"YulFunctionCall","src":"1602:18:1"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1595:3:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"1685:109:1","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1706:3:1"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1736:3:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1741:7:1"}],"functionName":{"name":"abi_decode_array_uint256","nodeType":"YulIdentifier","src":"1711:24:1"},"nodeType":"YulFunctionCall","src":"1711:38:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1699:6:1"},"nodeType":"YulFunctionCall","src":"1699:51:1"},"nodeType":"YulExpressionStatement","src":"1699:51:1"},{"nodeType":"YulAssignment","src":"1763:21:1","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1774:3:1"},{"kind":"number","nodeType":"YulLiteral","src":"1779:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1770:3:1"},"nodeType":"YulFunctionCall","src":"1770:14:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1763:3:1"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1640:3:1"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"1645:6:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1637:2:1"},"nodeType":"YulFunctionCall","src":"1637:15:1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1653:23:1","statements":[{"nodeType":"YulAssignment","src":"1655:19:1","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1666:3:1"},{"name":"_1","nodeType":"YulIdentifier","src":"1671:2:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1662:3:1"},"nodeType":"YulFunctionCall","src":"1662:12:1"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1655:3:1"}]}]},"pre":{"nodeType":"YulBlock","src":"1633:3:1","statements":[]},"src":"1629:165:1"},{"nodeType":"YulAssignment","src":"1803:15:1","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"1813:5:1"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1803:6:1"}]},{"nodeType":"YulAssignment","src":"1827:51:1","value":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"1862:6:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1870:7:1"}],"functionName":{"name":"abi_decode_array_uint256","nodeType":"YulIdentifier","src":"1837:24:1"},"nodeType":"YulFunctionCall","src":"1837:41:1"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1827:6:1"}]},{"nodeType":"YulAssignment","src":"1887:64:1","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1926:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"1937:3:1","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1922:3:1"},"nodeType":"YulFunctionCall","src":"1922:19:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1943:7:1"}],"functionName":{"name":"abi_decode_array_uint256","nodeType":"YulIdentifier","src":"1897:24:1"},"nodeType":"YulFunctionCall","src":"1897:54:1"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1887:6:1"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$2_memory_ptrt_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptrt_array$_t_uint256_$2_memory_ptrt_array$_t_uint256_$2_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1156:9:1","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1167:7:1","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1179:6:1","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1187:6:1","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1195:6:1","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1203:6:1","type":""}],"src":"978:979:1"},{"body":{"nodeType":"YulBlock","src":"2057:92:1","statements":[{"nodeType":"YulAssignment","src":"2067:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2079:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"2090:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2075:3:1"},"nodeType":"YulFunctionCall","src":"2075:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2067:4:1"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2109:9:1"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2134:6:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2127:6:1"},"nodeType":"YulFunctionCall","src":"2127:14:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2120:6:1"},"nodeType":"YulFunctionCall","src":"2120:22:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2102:6:1"},"nodeType":"YulFunctionCall","src":"2102:41:1"},"nodeType":"YulExpressionStatement","src":"2102:41:1"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2026:9:1","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2037:6:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2048:4:1","type":""}],"src":"1962:187:1"},{"body":{"nodeType":"YulBlock","src":"2186:95:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2203:1:1","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2210:3:1","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2215:10:1","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2206:3:1"},"nodeType":"YulFunctionCall","src":"2206:20:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2196:6:1"},"nodeType":"YulFunctionCall","src":"2196:31:1"},"nodeType":"YulExpressionStatement","src":"2196:31:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2243:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2246:4:1","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2236:6:1"},"nodeType":"YulFunctionCall","src":"2236:15:1"},"nodeType":"YulExpressionStatement","src":"2236:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2267:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2270:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2260:6:1"},"nodeType":"YulFunctionCall","src":"2260:15:1"},"nodeType":"YulExpressionStatement","src":"2260:15:1"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"2154:127:1"},{"body":{"nodeType":"YulBlock","src":"2318:95:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2335:1:1","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2342:3:1","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2347:10:1","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2338:3:1"},"nodeType":"YulFunctionCall","src":"2338:20:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2328:6:1"},"nodeType":"YulFunctionCall","src":"2328:31:1"},"nodeType":"YulExpressionStatement","src":"2328:31:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2375:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2378:4:1","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2368:6:1"},"nodeType":"YulFunctionCall","src":"2368:15:1"},"nodeType":"YulExpressionStatement","src":"2368:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2399:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2402:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2392:6:1"},"nodeType":"YulFunctionCall","src":"2392:15:1"},"nodeType":"YulExpressionStatement","src":"2392:15:1"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"2286:127:1"},{"body":{"nodeType":"YulBlock","src":"2465:88:1","statements":[{"body":{"nodeType":"YulBlock","src":"2496:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"2498:16:1"},"nodeType":"YulFunctionCall","src":"2498:18:1"},"nodeType":"YulExpressionStatement","src":"2498:18:1"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2481:5:1"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2492:1:1","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2488:3:1"},"nodeType":"YulFunctionCall","src":"2488:6:1"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2478:2:1"},"nodeType":"YulFunctionCall","src":"2478:17:1"},"nodeType":"YulIf","src":"2475:43:1"},{"nodeType":"YulAssignment","src":"2527:20:1","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2538:5:1"},{"kind":"number","nodeType":"YulLiteral","src":"2545:1:1","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2534:3:1"},"nodeType":"YulFunctionCall","src":"2534:13:1"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"2527:3:1"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2447:5:1","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"2457:3:1","type":""}],"src":"2418:135:1"},{"body":{"nodeType":"YulBlock","src":"2606:80:1","statements":[{"body":{"nodeType":"YulBlock","src":"2633:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"2635:16:1"},"nodeType":"YulFunctionCall","src":"2635:18:1"},"nodeType":"YulExpressionStatement","src":"2635:18:1"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2622:1:1"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"2629:1:1"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2625:3:1"},"nodeType":"YulFunctionCall","src":"2625:6:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2619:2:1"},"nodeType":"YulFunctionCall","src":"2619:13:1"},"nodeType":"YulIf","src":"2616:39:1"},{"nodeType":"YulAssignment","src":"2664:16:1","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2675:1:1"},{"name":"y","nodeType":"YulIdentifier","src":"2678:1:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2671:3:1"},"nodeType":"YulFunctionCall","src":"2671:9:1"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2664:3:1"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2589:1:1","type":""},{"name":"y","nodeType":"YulTypedName","src":"2592:1:1","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2598:3:1","type":""}],"src":"2558:128:1"},{"body":{"nodeType":"YulBlock","src":"2865:168:1","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2882:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"2893:2:1","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2875:6:1"},"nodeType":"YulFunctionCall","src":"2875:21:1"},"nodeType":"YulExpressionStatement","src":"2875:21:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2916:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"2927:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2912:3:1"},"nodeType":"YulFunctionCall","src":"2912:18:1"},{"kind":"number","nodeType":"YulLiteral","src":"2932:2:1","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2905:6:1"},"nodeType":"YulFunctionCall","src":"2905:30:1"},"nodeType":"YulExpressionStatement","src":"2905:30:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2955:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"2966:2:1","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2951:3:1"},"nodeType":"YulFunctionCall","src":"2951:18:1"},{"hexValue":"76657269666965722d6261642d696e707574","kind":"string","nodeType":"YulLiteral","src":"2971:20:1","type":"","value":"verifier-bad-input"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2944:6:1"},"nodeType":"YulFunctionCall","src":"2944:48:1"},"nodeType":"YulExpressionStatement","src":"2944:48:1"},{"nodeType":"YulAssignment","src":"3001:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3013:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"3024:2:1","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3009:3:1"},"nodeType":"YulFunctionCall","src":"3009:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3001:4:1"}]}]},"name":"abi_encode_tuple_t_stringliteral_62f18c0da782e23b7e947e83d22170e983c1918040b5b1bd1c1e3ee5a50cc57a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2842:9:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2856:4:1","type":""}],"src":"2691:342:1"},{"body":{"nodeType":"YulBlock","src":"3212:181:1","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3229:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"3240:2:1","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3222:6:1"},"nodeType":"YulFunctionCall","src":"3222:21:1"},"nodeType":"YulExpressionStatement","src":"3222:21:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3263:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"3274:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3259:3:1"},"nodeType":"YulFunctionCall","src":"3259:18:1"},{"kind":"number","nodeType":"YulLiteral","src":"3279:2:1","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3252:6:1"},"nodeType":"YulFunctionCall","src":"3252:30:1"},"nodeType":"YulExpressionStatement","src":"3252:30:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3302:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"3313:2:1","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3298:3:1"},"nodeType":"YulFunctionCall","src":"3298:18:1"},{"hexValue":"76657269666965722d6774652d736e61726b2d7363616c61722d6669656c64","kind":"string","nodeType":"YulLiteral","src":"3318:33:1","type":"","value":"verifier-gte-snark-scalar-field"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3291:6:1"},"nodeType":"YulFunctionCall","src":"3291:61:1"},"nodeType":"YulExpressionStatement","src":"3291:61:1"},{"nodeType":"YulAssignment","src":"3361:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3373:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"3384:2:1","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3369:3:1"},"nodeType":"YulFunctionCall","src":"3369:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3361:4:1"}]}]},"name":"abi_encode_tuple_t_stringliteral_8cb5a586d84bd3fa5140c79c44fd5cd5a5b0e7e59a1ddee2846426486e57f847__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3189:9:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3203:4:1","type":""}],"src":"3038:355:1"},{"body":{"nodeType":"YulBlock","src":"3572:168:1","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3589:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"3600:2:1","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3582:6:1"},"nodeType":"YulFunctionCall","src":"3582:21:1"},"nodeType":"YulExpressionStatement","src":"3582:21:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3623:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"3634:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3619:3:1"},"nodeType":"YulFunctionCall","src":"3619:18:1"},{"kind":"number","nodeType":"YulLiteral","src":"3639:2:1","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3612:6:1"},"nodeType":"YulFunctionCall","src":"3612:30:1"},"nodeType":"YulExpressionStatement","src":"3612:30:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3662:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"3673:2:1","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3658:3:1"},"nodeType":"YulFunctionCall","src":"3658:18:1"},{"hexValue":"70616972696e672d6d756c2d6661696c6564","kind":"string","nodeType":"YulLiteral","src":"3678:20:1","type":"","value":"pairing-mul-failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3651:6:1"},"nodeType":"YulFunctionCall","src":"3651:48:1"},"nodeType":"YulExpressionStatement","src":"3651:48:1"},{"nodeType":"YulAssignment","src":"3708:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3720:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"3731:2:1","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3716:3:1"},"nodeType":"YulFunctionCall","src":"3716:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3708:4:1"}]}]},"name":"abi_encode_tuple_t_stringliteral_63b4943691e0891cf5adcfe6e3eb490783b718accceadc0166bc4e56cf1df5de__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3549:9:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3563:4:1","type":""}],"src":"3398:342:1"},{"body":{"nodeType":"YulBlock","src":"3919:168:1","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3936:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"3947:2:1","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3929:6:1"},"nodeType":"YulFunctionCall","src":"3929:21:1"},"nodeType":"YulExpressionStatement","src":"3929:21:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3970:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"3981:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3966:3:1"},"nodeType":"YulFunctionCall","src":"3966:18:1"},{"kind":"number","nodeType":"YulLiteral","src":"3986:2:1","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3959:6:1"},"nodeType":"YulFunctionCall","src":"3959:30:1"},"nodeType":"YulExpressionStatement","src":"3959:30:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4009:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"4020:2:1","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4005:3:1"},"nodeType":"YulFunctionCall","src":"4005:18:1"},{"hexValue":"70616972696e672d6164642d6661696c6564","kind":"string","nodeType":"YulLiteral","src":"4025:20:1","type":"","value":"pairing-add-failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3998:6:1"},"nodeType":"YulFunctionCall","src":"3998:48:1"},"nodeType":"YulExpressionStatement","src":"3998:48:1"},{"nodeType":"YulAssignment","src":"4055:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4067:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"4078:2:1","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4063:3:1"},"nodeType":"YulFunctionCall","src":"4063:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4055:4:1"}]}]},"name":"abi_encode_tuple_t_stringliteral_e428a53e578d13ee2fc3b8849114332d6a94afed893fa747a37e281039728688__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3896:9:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3910:4:1","type":""}],"src":"3745:342:1"},{"body":{"nodeType":"YulBlock","src":"4130:171:1","statements":[{"body":{"nodeType":"YulBlock","src":"4161:111:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4182:1:1","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4189:3:1","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4194:10:1","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4185:3:1"},"nodeType":"YulFunctionCall","src":"4185:20:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4175:6:1"},"nodeType":"YulFunctionCall","src":"4175:31:1"},"nodeType":"YulExpressionStatement","src":"4175:31:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4226:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4229:4:1","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4219:6:1"},"nodeType":"YulFunctionCall","src":"4219:15:1"},"nodeType":"YulExpressionStatement","src":"4219:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4254:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4257:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4247:6:1"},"nodeType":"YulFunctionCall","src":"4247:15:1"},"nodeType":"YulExpressionStatement","src":"4247:15:1"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4150:1:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4143:6:1"},"nodeType":"YulFunctionCall","src":"4143:9:1"},"nodeType":"YulIf","src":"4140:132:1"},{"nodeType":"YulAssignment","src":"4281:14:1","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4290:1:1"},{"name":"y","nodeType":"YulIdentifier","src":"4293:1:1"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"4286:3:1"},"nodeType":"YulFunctionCall","src":"4286:9:1"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"4281:1:1"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4115:1:1","type":""},{"name":"y","nodeType":"YulTypedName","src":"4118:1:1","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"4124:1:1","type":""}],"src":"4092:209:1"},{"body":{"nodeType":"YulBlock","src":"4355:76:1","statements":[{"body":{"nodeType":"YulBlock","src":"4377:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4379:16:1"},"nodeType":"YulFunctionCall","src":"4379:18:1"},"nodeType":"YulExpressionStatement","src":"4379:18:1"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4371:1:1"},{"name":"y","nodeType":"YulIdentifier","src":"4374:1:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4368:2:1"},"nodeType":"YulFunctionCall","src":"4368:8:1"},"nodeType":"YulIf","src":"4365:34:1"},{"nodeType":"YulAssignment","src":"4408:17:1","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4420:1:1"},{"name":"y","nodeType":"YulIdentifier","src":"4423:1:1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4416:3:1"},"nodeType":"YulFunctionCall","src":"4416:9:1"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"4408:4:1"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4337:1:1","type":""},{"name":"y","nodeType":"YulTypedName","src":"4340:1:1","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"4346:4:1","type":""}],"src":"4306:125:1"},{"body":{"nodeType":"YulBlock","src":"4610:172:1","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4627:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"4638:2:1","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4620:6:1"},"nodeType":"YulFunctionCall","src":"4620:21:1"},"nodeType":"YulExpressionStatement","src":"4620:21:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4661:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"4672:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4657:3:1"},"nodeType":"YulFunctionCall","src":"4657:18:1"},{"kind":"number","nodeType":"YulLiteral","src":"4677:2:1","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4650:6:1"},"nodeType":"YulFunctionCall","src":"4650:30:1"},"nodeType":"YulExpressionStatement","src":"4650:30:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4700:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"4711:2:1","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4696:3:1"},"nodeType":"YulFunctionCall","src":"4696:18:1"},{"hexValue":"70616972696e672d6c656e677468732d6661696c6564","kind":"string","nodeType":"YulLiteral","src":"4716:24:1","type":"","value":"pairing-lengths-failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4689:6:1"},"nodeType":"YulFunctionCall","src":"4689:52:1"},"nodeType":"YulExpressionStatement","src":"4689:52:1"},{"nodeType":"YulAssignment","src":"4750:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4762:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"4773:2:1","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4758:3:1"},"nodeType":"YulFunctionCall","src":"4758:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4750:4:1"}]}]},"name":"abi_encode_tuple_t_stringliteral_d4c505601ed3bad1341fbb75434dd6541f91bae974d0b2bc28d5491a5c4a21cc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4587:9:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4601:4:1","type":""}],"src":"4436:346:1"},{"body":{"nodeType":"YulBlock","src":"4839:116:1","statements":[{"body":{"nodeType":"YulBlock","src":"4898:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4900:16:1"},"nodeType":"YulFunctionCall","src":"4900:18:1"},"nodeType":"YulExpressionStatement","src":"4900:18:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4870:1:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4863:6:1"},"nodeType":"YulFunctionCall","src":"4863:9:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4856:6:1"},"nodeType":"YulFunctionCall","src":"4856:17:1"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4878:1:1"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4889:1:1","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4885:3:1"},"nodeType":"YulFunctionCall","src":"4885:6:1"},{"name":"x","nodeType":"YulIdentifier","src":"4893:1:1"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4881:3:1"},"nodeType":"YulFunctionCall","src":"4881:14:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4875:2:1"},"nodeType":"YulFunctionCall","src":"4875:21:1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4852:3:1"},"nodeType":"YulFunctionCall","src":"4852:45:1"},"nodeType":"YulIf","src":"4849:71:1"},{"nodeType":"YulAssignment","src":"4929:20:1","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4944:1:1"},{"name":"y","nodeType":"YulIdentifier","src":"4947:1:1"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4940:3:1"},"nodeType":"YulFunctionCall","src":"4940:9:1"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"4929:7:1"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4818:1:1","type":""},{"name":"y","nodeType":"YulTypedName","src":"4821:1:1","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"4827:7:1","type":""}],"src":"4787:168:1"},{"body":{"nodeType":"YulBlock","src":"5134:171:1","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5151:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"5162:2:1","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5144:6:1"},"nodeType":"YulFunctionCall","src":"5144:21:1"},"nodeType":"YulExpressionStatement","src":"5144:21:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5185:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"5196:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5181:3:1"},"nodeType":"YulFunctionCall","src":"5181:18:1"},{"kind":"number","nodeType":"YulLiteral","src":"5201:2:1","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5174:6:1"},"nodeType":"YulFunctionCall","src":"5174:30:1"},"nodeType":"YulExpressionStatement","src":"5174:30:1"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5224:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"5235:2:1","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5220:3:1"},"nodeType":"YulFunctionCall","src":"5220:18:1"},{"hexValue":"70616972696e672d6f70636f64652d6661696c6564","kind":"string","nodeType":"YulLiteral","src":"5240:23:1","type":"","value":"pairing-opcode-failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5213:6:1"},"nodeType":"YulFunctionCall","src":"5213:51:1"},"nodeType":"YulExpressionStatement","src":"5213:51:1"},{"nodeType":"YulAssignment","src":"5273:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5285:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"5296:2:1","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5281:3:1"},"nodeType":"YulFunctionCall","src":"5281:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5273:4:1"}]}]},"name":"abi_encode_tuple_t_stringliteral_f3220b3ef654fc0d9a13e2b6d8c956cb8fb22df61a3a050ded181d8902069fe5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5111:9:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5125:4:1","type":""}],"src":"4960:345:1"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 64)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function abi_decode_array_uint256(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let dst := allocate_memory()\n let dst_1 := dst\n let srcEnd := add(offset, 64)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := offset\n for { } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n mstore(dst, calldataload(src))\n dst := add(dst, 0x20)\n }\n array := dst_1\n }\n function abi_decode_tuple_t_array$_t_uint256_$2_memory_ptrt_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptrt_array$_t_uint256_$2_memory_ptrt_array$_t_uint256_$2_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 320) { revert(0, 0) }\n value0 := abi_decode_array_uint256(headStart, dataEnd)\n let _1 := 64\n if iszero(slt(add(headStart, 95), dataEnd)) { revert(0, 0) }\n let dst := allocate_memory()\n let dst_1 := dst\n let srcEnd := add(headStart, 192)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(headStart, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n mstore(dst, abi_decode_array_uint256(src, dataEnd))\n dst := add(dst, 0x20)\n }\n value1 := dst_1\n value2 := abi_decode_array_uint256(srcEnd, dataEnd)\n value3 := abi_decode_array_uint256(add(headStart, 256), dataEnd)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function abi_encode_tuple_t_stringliteral_62f18c0da782e23b7e947e83d22170e983c1918040b5b1bd1c1e3ee5a50cc57a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"verifier-bad-input\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8cb5a586d84bd3fa5140c79c44fd5cd5a5b0e7e59a1ddee2846426486e57f847__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"verifier-gte-snark-scalar-field\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_63b4943691e0891cf5adcfe6e3eb490783b718accceadc0166bc4e56cf1df5de__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"pairing-mul-failed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_e428a53e578d13ee2fc3b8849114332d6a94afed893fa747a37e281039728688__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"pairing-add-failed\")\n tail := add(headStart, 96)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := mod(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function abi_encode_tuple_t_stringliteral_d4c505601ed3bad1341fbb75434dd6541f91bae974d0b2bc28d5491a5c4a21cc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"pairing-lengths-failed\")\n tail := add(headStart, 96)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function abi_encode_tuple_t_stringliteral_f3220b3ef654fc0d9a13e2b6d8c956cb8fb22df61a3a050ded181d8902069fe5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"pairing-opcode-failed\")\n tail := add(headStart, 96)\n }\n}","id":1,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f5c9d69e14610030575b600080fd5b61004361003e366004610f96565b610057565b604051901515815260200160405180910390f35b6000610061610dbf565b60408051808201825287518152602080890151818301529083528151608081018352875151818401908152885183015160608084019190915290825283518085018552898401805151825251840151818501528284015284830191909152825180840184528751815287830151818401528484015282516002808252918101845260009390928301908036833701905050905060005b60028110156101465784816002811061011257610112611036565b602002015182828151811061012957610129611036565b60209081029190910101528061013e81611062565b9150506100f7565b50610151818361016f565b61016057600192505050610167565b6000925050505b949350505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018161019b610366565b9050806080015151855160016101b1919061107d565b146101f85760405162461bcd60e51b81526020600482015260126024820152711d995c9a599a595c8b5898590b5a5b9c1d5d60721b60448201526064015b60405180910390fd5b604080518082019091526000808252602082018190525b86518110156102e9578387828151811061022b5761022b611036565b6020026020010151106102805760405162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c640060448201526064016101ef565b6102d5826102d08560800151846001610299919061107d565b815181106102a9576102a9611036565b60200260200101518a85815181106102c3576102c3611036565b602002602001015161070a565b6107a6565b9150806102e181611062565b91505061020f565b5061031281836080015160008151811061030557610305611036565b60200260200101516107a6565b9050610348610324866000015161083e565b8660200151846000015185602001518587604001518b6040015189606001516108dd565b6103585760019350505050610360565b600093505050505b92915050565b61036e610e10565b6040805180820182527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e281527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266020808301919091529083528151608080820184527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c8285019081527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab606080850191909152908352845180860186527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a781527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8818601528385015285840192909252835180820185527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28186018181527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed838601819052908352865180880188527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b8082527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa828901819052858901929092528989019490945287518086018952808901938452808701929092529181528651808801885292835282860191909152938401529084019190915281516003808252918101909252816020015b604080518082019091526000808252602082015281526020019060019003908161057b57505060808201908152604080518082019091527f0f13deecd2bb97a4a72138125f42fb6cf7a7d268c07b6be71ea235c128ec8b0d81527f141a084ea96151edd848da5554d22ffe50108204685faf2953c88cc5ecd13afc60208201529051805160009061060e5761060e611036565b602002602001018190525060405180604001604052807f0584139dea87bfc802b78d16336c5507427cdbd3b485ed93311612dd9dae56b981526020017f0ca856036d046756064d3e3efb84c27f6d3589ab9e8f9363905e5a9238649310815250816080015160018151811061068557610685611036565b602002602001018190525060405180604001604052807f06851ff62db30413d0be9360cdbb12813682741de8743b6f6e72bebf376dffd981526020017f1fcc740e777501125b58a260a9d9a31bead97d19585568f490c98960091433f681525081608001516002815181106106fc576106fc611036565b602002602001018190525090565b6040805180820190915260008082526020820152610726610e61565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080156107595761075b565bfe5b508061079e5760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b60448201526064016101ef565b505092915050565b60408051808201909152600080825260208201526107c2610e7f565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa905080801561075957508061079e5760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b60448201526064016101ef565b604080518082019091526000808252602082015281517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479015801561088557506020830151155b156108a55750506040805180820190915260008082526020820152919050565b6040518060400160405280846000015181526020018285602001516108ca9190611095565b6108d490846110b7565b90529392505050565b60408051600480825260a08201909252600091829190816020015b60408051808201909152600080825260208201528152602001906001900390816108f857505060408051600480825260a0820190925291925060009190602082015b610942610e9d565b81526020019060019003908161093a5790505090508a8260008151811061096b5761096b611036565b6020026020010181905250888260018151811061098a5761098a611036565b602002602001018190525086826002815181106109a9576109a9611036565b602002602001018190525084826003815181106109c8576109c8611036565b602002602001018190525089816000815181106109e7576109e7611036565b60200260200101819052508781600181518110610a0657610a06611036565b60200260200101819052508581600281518110610a2557610a25611036565b60200260200101819052508381600381518110610a4457610a44611036565b6020026020010181905250610a598282610a68565b9b9a5050505050505050505050565b60008151835114610ab45760405162461bcd60e51b81526020600482015260166024820152751c185a5c9a5b99cb5b195b99dd1a1ccb59985a5b195960521b60448201526064016101ef565b82516000610ac38260066110ce565b905060008167ffffffffffffffff811115610ae057610ae0610ef9565b604051908082528060200260200182016040528015610b09578160200160208202803683370190505b50905060005b83811015610d4457868181518110610b2957610b29611036565b60200260200101516000015182826006610b4391906110ce565b610b4e90600061107d565b81518110610b5e57610b5e611036565b602002602001018181525050868181518110610b7c57610b7c611036565b60200260200101516020015182826006610b9691906110ce565b610ba190600161107d565b81518110610bb157610bb1611036565b602002602001018181525050858181518110610bcf57610bcf611036565b6020908102919091010151515182610be88360066110ce565b610bf390600261107d565b81518110610c0357610c03611036565b602002602001018181525050858181518110610c2157610c21611036565b60209081029190910181015151015182610c3c8360066110ce565b610c4790600361107d565b81518110610c5757610c57611036565b602002602001018181525050858181518110610c7557610c75611036565b602002602001015160200151600060028110610c9357610c93611036565b602002015182610ca48360066110ce565b610caf90600461107d565b81518110610cbf57610cbf611036565b602002602001018181525050858181518110610cdd57610cdd611036565b602002602001015160200151600160028110610cfb57610cfb611036565b602002015182610d0c8360066110ce565b610d1790600561107d565b81518110610d2757610d27611036565b602090810291909101015280610d3c81611062565b915050610b0f565b50610d4d610ebd565b6000602082602086026020860160086107d05a03fa9050808015610759575080610db15760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016101ef565b505115159695505050505050565b6040805160a081019091526000606082018181526080830191909152815260208101610de9610e9d565b8152602001610e0b604051806040016040528060008152602001600081525090565b905290565b6040805160e08101909152600060a0820181815260c0830191909152815260208101610e3a610e9d565b8152602001610e47610e9d565b8152602001610e54610e9d565b8152602001606081525090565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280610eb0610edb565b8152602001610e0b610edb565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610f4057634e487b7160e01b600052604160045260246000fd5b60405290565b600082601f830112610f5757600080fd5b610f5f610f0f565b806040840185811115610f7157600080fd5b845b81811015610f8b578035845260209384019301610f73565b509095945050505050565b6000806000806101408587031215610fad57600080fd5b610fb78686610f46565b9350604086605f870112610fca57600080fd5b610fd2610f0f565b8060c0880189811115610fe457600080fd5b8389015b8181101561100957610ffa8b82610f46565b84526020909301928401610fe8565b508196506110178a82610f46565b95505050505061102b866101008701610f46565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156110765761107661104c565b5060010190565b600082198211156110905761109061104c565b500190565b6000826110b257634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156110c9576110c961104c565b500390565b60008160001904831182151516156110e8576110e861104c565b50029056fea26469706673582212201f2defe83f0fecceb9b59f3594b99edc189c4f3b137fbeb3d2dfd46aad30610a64736f6c634300080a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF5C9D69E EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xF96 JUMP JUMPDEST PUSH2 0x57 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x61 PUSH2 0xDBF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE DUP8 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP10 ADD MLOAD DUP2 DUP4 ADD MSTORE SWAP1 DUP4 MSTORE DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP8 MLOAD MLOAD DUP2 DUP5 ADD SWAP1 DUP2 MSTORE DUP9 MLOAD DUP4 ADD MLOAD PUSH1 0x60 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE DUP10 DUP5 ADD DUP1 MLOAD MLOAD DUP3 MSTORE MLOAD DUP5 ADD MLOAD DUP2 DUP6 ADD MSTORE DUP3 DUP5 ADD MSTORE DUP5 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE DUP8 MLOAD DUP2 MSTORE DUP8 DUP4 ADD MLOAD DUP2 DUP5 ADD MSTORE DUP5 DUP5 ADD MSTORE DUP3 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE SWAP2 DUP2 ADD DUP5 MSTORE PUSH1 0x0 SWAP4 SWAP1 SWAP3 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x146 JUMPI DUP5 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x112 JUMPI PUSH2 0x112 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x129 JUMPI PUSH2 0x129 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP1 PUSH2 0x13E DUP2 PUSH2 0x1062 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xF7 JUMP JUMPDEST POP PUSH2 0x151 DUP2 DUP4 PUSH2 0x16F JUMP JUMPDEST PUSH2 0x160 JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x167 JUMP JUMPDEST PUSH1 0x0 SWAP3 POP POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 PUSH2 0x19B PUSH2 0x366 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x80 ADD MLOAD MLOAD DUP6 MLOAD PUSH1 0x1 PUSH2 0x1B1 SWAP2 SWAP1 PUSH2 0x107D JUMP JUMPDEST EQ PUSH2 0x1F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x1D995C9A599A595C8B5898590B5A5B9C1D5D PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE JUMPDEST DUP7 MLOAD DUP2 LT ISZERO PUSH2 0x2E9 JUMPI DUP4 DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x22B JUMPI PUSH2 0x22B PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT PUSH2 0x280 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x76657269666965722D6774652D736E61726B2D7363616C61722D6669656C6400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1EF JUMP JUMPDEST PUSH2 0x2D5 DUP3 PUSH2 0x2D0 DUP6 PUSH1 0x80 ADD MLOAD DUP5 PUSH1 0x1 PUSH2 0x299 SWAP2 SWAP1 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x2A9 JUMPI PUSH2 0x2A9 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP11 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x2C3 JUMPI PUSH2 0x2C3 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x70A JUMP JUMPDEST PUSH2 0x7A6 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x2E1 DUP2 PUSH2 0x1062 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x20F JUMP JUMPDEST POP PUSH2 0x312 DUP2 DUP4 PUSH1 0x80 ADD MLOAD PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x305 JUMPI PUSH2 0x305 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x7A6 JUMP JUMPDEST SWAP1 POP PUSH2 0x348 PUSH2 0x324 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x83E JUMP JUMPDEST DUP7 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP6 DUP8 PUSH1 0x40 ADD MLOAD DUP12 PUSH1 0x40 ADD MLOAD DUP10 PUSH1 0x60 ADD MLOAD PUSH2 0x8DD JUMP JUMPDEST PUSH2 0x358 JUMPI PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x360 JUMP JUMPDEST PUSH1 0x0 SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x36E PUSH2 0xE10 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH32 0x2D4D9AA7E302D9DF41749D5507949D05DBEA33FBB16C643B22F599A2BE6DF2E2 DUP2 MSTORE PUSH32 0x14BEDD503C37CEB061D8EC60209FE345CE89830A19230301F076CAFF004D1926 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP4 MSTORE DUP2 MLOAD PUSH1 0x80 DUP1 DUP3 ADD DUP5 MSTORE PUSH32 0x967032FCBF776D1AFC985F88877F182D38480A653F2DECAA9794CBC3BF3060C DUP3 DUP6 ADD SWAP1 DUP2 MSTORE PUSH32 0xE187847AD4C798374D0D6732BF501847DD68BC0E071241E0213BC7FC13DB7AB PUSH1 0x60 DUP1 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 DUP4 MSTORE DUP5 MLOAD DUP1 DUP7 ADD DUP7 MSTORE PUSH32 0x304CFBD1E08A704A99F5E847D93F8C3CAAFDDEC46B7A0D379DA69A4D112346A7 DUP2 MSTORE PUSH32 0x1739C1B1A457A8C7313123D24D2F9192F896B7C63EEA05A9D57F06547AD0CEC8 DUP2 DUP7 ADD MSTORE DUP4 DUP6 ADD MSTORE DUP6 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP4 MLOAD DUP1 DUP3 ADD DUP6 MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 DUP2 DUP7 ADD DUP2 DUP2 MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED DUP4 DUP7 ADD DUP2 SWAP1 MSTORE SWAP1 DUP4 MSTORE DUP7 MLOAD DUP1 DUP9 ADD DUP9 MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B DUP1 DUP3 MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA DUP3 DUP10 ADD DUP2 SWAP1 MSTORE DUP6 DUP10 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP10 DUP10 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP8 MLOAD DUP1 DUP7 ADD DUP10 MSTORE DUP1 DUP10 ADD SWAP4 DUP5 MSTORE DUP1 DUP8 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 DUP2 MSTORE DUP7 MLOAD DUP1 DUP9 ADD DUP9 MSTORE SWAP3 DUP4 MSTORE DUP3 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP5 ADD MSTORE SWAP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD PUSH1 0x3 DUP1 DUP3 MSTORE SWAP2 DUP2 ADD SWAP1 SWAP3 MSTORE DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x57B JUMPI POP POP PUSH1 0x80 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH32 0xF13DEECD2BB97A4A72138125F42FB6CF7A7D268C07B6BE71EA235C128EC8B0D DUP2 MSTORE PUSH32 0x141A084EA96151EDD848DA5554D22FFE50108204685FAF2953C88CC5ECD13AFC PUSH1 0x20 DUP3 ADD MSTORE SWAP1 MLOAD DUP1 MLOAD PUSH1 0x0 SWAP1 PUSH2 0x60E JUMPI PUSH2 0x60E PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0x584139DEA87BFC802B78D16336C5507427CDBD3B485ED93311612DD9DAE56B9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0xCA856036D046756064D3E3EFB84C27F6D3589AB9E8F9363905E5A9238649310 DUP2 MSTORE POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x685 JUMPI PUSH2 0x685 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH32 0x6851FF62DB30413D0BE9360CDBB12813682741DE8743B6F6E72BEBF376DFFD9 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x1FCC740E777501125B58A260A9D9A31BEAD97D19585568F490C98960091433F6 DUP2 MSTORE POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x2 DUP2 MLOAD DUP2 LT PUSH2 0x6FC JUMPI PUSH2 0x6FC PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x726 PUSH2 0xE61 JUMP JUMPDEST DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 PUSH1 0x60 DUP4 PUSH1 0x80 DUP5 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x759 JUMPI PUSH2 0x75B JUMP JUMPDEST INVALID JUMPDEST POP DUP1 PUSH2 0x79E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x1C185A5C9A5B99CB5B5D5B0B59985A5B1959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1EF JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x7C2 PUSH2 0xE7F JUMP JUMPDEST DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD PUSH1 0x40 DUP4 ADD MSTORE DUP4 ADD MLOAD PUSH1 0x60 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP4 PUSH1 0xC0 DUP5 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x759 JUMPI POP DUP1 PUSH2 0x79E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x1C185A5C9A5B99CB5859190B59985A5B1959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1EF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SWAP1 ISZERO DUP1 ISZERO PUSH2 0x885 JUMPI POP PUSH1 0x20 DUP4 ADD MLOAD ISZERO JUMPDEST ISZERO PUSH2 0x8A5 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x8CA SWAP2 SWAP1 PUSH2 0x1095 JUMP JUMPDEST PUSH2 0x8D4 SWAP1 DUP5 PUSH2 0x10B7 JUMP JUMPDEST SWAP1 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP1 DUP3 MSTORE PUSH1 0xA0 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 SWAP1 DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x8F8 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x4 DUP1 DUP3 MSTORE PUSH1 0xA0 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP3 ADD JUMPDEST PUSH2 0x942 PUSH2 0xE9D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x93A JUMPI SWAP1 POP POP SWAP1 POP DUP11 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x96B JUMPI PUSH2 0x96B PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP9 DUP3 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x98A JUMPI PUSH2 0x98A PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP7 DUP3 PUSH1 0x2 DUP2 MLOAD DUP2 LT PUSH2 0x9A9 JUMPI PUSH2 0x9A9 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP5 DUP3 PUSH1 0x3 DUP2 MLOAD DUP2 LT PUSH2 0x9C8 JUMPI PUSH2 0x9C8 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP10 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x9E7 JUMPI PUSH2 0x9E7 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP8 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0xA06 JUMPI PUSH2 0xA06 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP6 DUP2 PUSH1 0x2 DUP2 MLOAD DUP2 LT PUSH2 0xA25 JUMPI PUSH2 0xA25 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP4 DUP2 PUSH1 0x3 DUP2 MLOAD DUP2 LT PUSH2 0xA44 JUMPI PUSH2 0xA44 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0xA59 DUP3 DUP3 PUSH2 0xA68 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0xAB4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1C185A5C9A5B99CB5B195B99DD1A1CCB59985A5B1959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1EF JUMP JUMPDEST DUP3 MLOAD PUSH1 0x0 PUSH2 0xAC3 DUP3 PUSH1 0x6 PUSH2 0x10CE JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAE0 JUMPI PUSH2 0xAE0 PUSH2 0xEF9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xB09 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD44 JUMPI DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xB29 JUMPI PUSH2 0xB29 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD DUP3 DUP3 PUSH1 0x6 PUSH2 0xB43 SWAP2 SWAP1 PUSH2 0x10CE JUMP JUMPDEST PUSH2 0xB4E SWAP1 PUSH1 0x0 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB5E JUMPI PUSH2 0xB5E PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP7 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xB7C JUMPI PUSH2 0xB7C PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP3 DUP3 PUSH1 0x6 PUSH2 0xB96 SWAP2 SWAP1 PUSH2 0x10CE JUMP JUMPDEST PUSH2 0xBA1 SWAP1 PUSH1 0x1 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xBB1 JUMPI PUSH2 0xBB1 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xBCF JUMPI PUSH2 0xBCF PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MLOAD MLOAD MLOAD DUP3 PUSH2 0xBE8 DUP4 PUSH1 0x6 PUSH2 0x10CE JUMP JUMPDEST PUSH2 0xBF3 SWAP1 PUSH1 0x2 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xC03 JUMPI PUSH2 0xC03 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xC21 JUMPI PUSH2 0xC21 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD MLOAD ADD MLOAD DUP3 PUSH2 0xC3C DUP4 PUSH1 0x6 PUSH2 0x10CE JUMP JUMPDEST PUSH2 0xC47 SWAP1 PUSH1 0x3 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xC57 JUMPI PUSH2 0xC57 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xC75 JUMPI PUSH2 0xC75 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x0 PUSH1 0x2 DUP2 LT PUSH2 0xC93 JUMPI PUSH2 0xC93 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP3 PUSH2 0xCA4 DUP4 PUSH1 0x6 PUSH2 0x10CE JUMP JUMPDEST PUSH2 0xCAF SWAP1 PUSH1 0x4 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xCBF JUMPI PUSH2 0xCBF PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xCDD JUMPI PUSH2 0xCDD PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x2 DUP2 LT PUSH2 0xCFB JUMPI PUSH2 0xCFB PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP3 PUSH2 0xD0C DUP4 PUSH1 0x6 PUSH2 0x10CE JUMP JUMPDEST PUSH2 0xD17 SWAP1 PUSH1 0x5 PUSH2 0x107D JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xD27 JUMPI PUSH2 0xD27 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE DUP1 PUSH2 0xD3C DUP2 PUSH2 0x1062 JUMP JUMPDEST SWAP2 POP POP PUSH2 0xB0F JUMP JUMPDEST POP PUSH2 0xD4D PUSH2 0xEBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 PUSH1 0x20 DUP7 MUL PUSH1 0x20 DUP7 ADD PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x759 JUMPI POP DUP1 PUSH2 0xDB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x1C185A5C9A5B99CB5BDC18DBD9194B59985A5B1959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1EF JUMP JUMPDEST POP MLOAD ISZERO ISZERO SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 PUSH1 0x60 DUP3 ADD DUP2 DUP2 MSTORE PUSH1 0x80 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0xDE9 PUSH2 0xE9D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE0B PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xE0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 PUSH1 0xA0 DUP3 ADD DUP2 DUP2 MSTORE PUSH1 0xC0 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH2 0xE3A PUSH2 0xE9D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE47 PUSH2 0xE9D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE54 PUSH2 0xE9D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0xEB0 PUSH2 0xEDB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE0B PUSH2 0xEDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xF40 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xF57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF5F PUSH2 0xF0F JUMP JUMPDEST DUP1 PUSH1 0x40 DUP5 ADD DUP6 DUP2 GT ISZERO PUSH2 0xF71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF8B JUMPI DUP1 CALLDATALOAD DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 ADD PUSH2 0xF73 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x140 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xFAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFB7 DUP7 DUP7 PUSH2 0xF46 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 PUSH1 0x5F DUP8 ADD SLT PUSH2 0xFCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFD2 PUSH2 0xF0F JUMP JUMPDEST DUP1 PUSH1 0xC0 DUP9 ADD DUP10 DUP2 GT ISZERO PUSH2 0xFE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP10 ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1009 JUMPI PUSH2 0xFFA DUP12 DUP3 PUSH2 0xF46 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 DUP5 ADD PUSH2 0xFE8 JUMP JUMPDEST POP DUP2 SWAP7 POP PUSH2 0x1017 DUP11 DUP3 PUSH2 0xF46 JUMP JUMPDEST SWAP6 POP POP POP POP POP PUSH2 0x102B DUP7 PUSH2 0x100 DUP8 ADD PUSH2 0xF46 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1076 JUMPI PUSH2 0x1076 PUSH2 0x104C JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1090 JUMPI PUSH2 0x1090 PUSH2 0x104C JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x10B2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x10C9 JUMPI PUSH2 0x10C9 PUSH2 0x104C JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x10E8 JUMPI PUSH2 0x10E8 PUSH2 0x104C JUMP JUMPDEST POP MUL SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x1F 0x2D 0xEF 0xE8 EXTCODEHASH 0xF 0xEC 0xCE 0xB9 0xB5 SWAP16 CALLDATALOAD SWAP5 0xB9 SWAP15 0xDC XOR SWAP13 0x4F EXTCODESIZE SGT PUSH32 0xBEB3D2DFD46AAD30610A64736F6C634300080A00330000000000000000000000 ","sourceMap":"7121:4437:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10881:675;;;;;;:::i;:::-;;:::i;:::-;;;2127:14:1;;2120:22;2102:41;;2090:2;2075:18;10881:675:0;;;;;;;;11060:6;11078:18;;:::i;:::-;11116:27;;;;;;;;11132:4;;11116:27;;11132:4;11138;;;;11116:27;;;;11106:37;;;11163:55;;;;;;;11180:4;;:7;11163:55;;;;;;11189:4;;:7;;;11163:55;;;;;;;;;;;;;;;;;;11200:4;;;;;:7;11163:55;;11209:4;:7;;;11163:55;;;;-1:-1:-1;;;11163:55:0;11153:7;;;:65;;;;11238:27;;;;;;;11254:4;;11238:27;;11260:4;;;;11238:27;;;;11228:7;;;:37;11303:24;;11314:12;11303:24;;;;;;;;-1:-1:-1;;11303:24:0;;;;;11116:27;11303:24;;;;;-1:-1:-1;11303:24:0;11275:52;;11341:6;11337:88;11357:12;11353:1;:16;11337:88;;;11406:5;11412:1;11406:8;;;;;;;:::i;:::-;;;;;11389:11;11401:1;11389:14;;;;;;;;:::i;:::-;;;;;;;;;;:25;11371:3;;;;:::i;:::-;;;;11337:88;;;;11438:26;11445:11;11458:5;11438:6;:26::i;:::-;11434:116;;11492:4;11485:11;;;;;;11434:116;11534:5;11527:12;;;;10881:675;;;;;;;:::o;9897:932::-;9977:4;10022:77;9977:4;10134:14;:12;:14::i;:::-;10109:39;;10186:2;:5;;;:12;10166:5;:12;10181:1;10166:16;;;;:::i;:::-;:32;10158:62;;;;-1:-1:-1;;;10158:62:0;;2893:2:1;10158:62:0;;;2875:21:1;2932:2;2912:18;;;2905:30;-1:-1:-1;;;2951:18:1;;;2944:48;3009:18;;10158:62:0;;;;;;;;;10307:21;;;;;;;;;10277:27;10307:21;;;;;;;;;10338:224;10359:5;:12;10355:1;:16;10338:224;;;10411:18;10400:5;10406:1;10400:8;;;;;;;;:::i;:::-;;;;;;;:29;10392:72;;;;-1:-1:-1;;;10392:72:0;;3240:2:1;10392:72:0;;;3222:21:1;3279:2;3259:18;;;3252:30;3318:33;3298:18;;;3291:61;3369:18;;10392:72:0;3038:355:1;10392:72:0;10485:66;10502:4;10508:42;10527:2;:5;;;10533:1;10537;10533:5;;;;:::i;:::-;10527:12;;;;;;;;:::i;:::-;;;;;;;10541:5;10547:1;10541:8;;;;;;;;:::i;:::-;;;;;;;10508:18;:42::i;:::-;10485:16;:66::i;:::-;10478:73;-1:-1:-1;10373:3:0;;;;:::i;:::-;;;;10338:224;;;;10578:32;10595:4;10601:2;:5;;;10607:1;10601:8;;;;;;;;:::i;:::-;;;;;;;10578:16;:32::i;:::-;10571:39;;10625:169;10659:23;10674:5;:7;;;10659:14;:23::i;:::-;10684:5;:7;;;10705:2;:8;;;10715:2;:8;;;10737:4;10743:2;:9;;;10766:5;:7;;;10775:2;:9;;;10625:20;:169::i;:::-;10620:184;;10803:1;10796:8;;;;;;;10620:184;10821:1;10814:8;;;;;9897:932;;;;;:::o;7468:2424::-;7515:22;;:::i;:::-;7560:206;;;;;;;;7589:77;7560:206;;7680:76;7560:206;;;;;;;;7549:217;;;7788:393;;;;;;;;7818:76;7788:393;;;;;;7909:76;7788:393;;;;;;;;;;;;;;;;;;8001:77;7788:393;;8093:77;7788:393;;;;-1:-1:-1;;;7788:393:0;7777:8;;;:404;;;;8203:393;;;;;;;8233:77;8203:393;;;;;;8325:77;8203:393;;;;;;;;;;;;;;;;8418:76;8203:393;;;8509:76;8203:393;;;;;;-1:-1:-1;;;8203:393:0;;;;8191:9;;;:405;;;;8618:393;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8618:393:0;8606:9;;;:405;;;;9029:24;;9051:1;9029:24;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;9029:24:0;;;;;;;;;;;;-1:-1:-1;;9021:5:0;;;:32;;;9083:206;;;;;;;;;9113:76;9083:206;;9203:76;9083:206;;;;9072:5;;:8;;-1:-1:-1;;9072:8:0;;;;:::i;:::-;;;;;;:217;;;;9357:206;;;;;;;;9387:76;9357:206;;;;9477:76;9357:206;;;9346:2;:5;;;9352:1;9346:8;;;;;;;;:::i;:::-;;;;;;:217;;;;9631:207;;;;;;;;9661:76;9631:207;;;;9751:77;9631:207;;;9620:2;:5;;;9626:1;9620:8;;;;;;;;:::i;:::-;;;;;;:218;;;;7468:2424;:::o;3772:539::-;-1:-1:-1;;;;;;;;;;;;;;;;;3869:20:0;;:::i;:::-;3910:3;;3899:14;;:8;3934:3;;;;3923:8;;;:14;3947:8;;;:12;;;-1:-1:-1;4137:4:0;4134:1;4128:4;3899:14;4118:1;4111:4;4104:5;4100:16;4089:53;4078:64;-1:-1:-1;4078:64:0;4227:20;;;;4212:35;;4227:20;4236:9;4212:35;;4275:7;4266:38;;;;-1:-1:-1;;;4266:38:0;;3600:2:1;4266:38:0;;;3582:21:1;3639:2;3619:18;;;3612:30;-1:-1:-1;;;3658:18:1;;;3651:48;3716:18;;4266:38:0;3398:342:1;4266:38:0;3859:452;;3772:539;;;;:::o;3039:578::-;-1:-1:-1;;;;;;;;;;;;;;;;;3146:20:0;;:::i;:::-;3187:4;;3176:15;;:8;3212:4;;;;3201:8;;;:15;3237:4;;3226:8;;;:15;3262:4;;;3251:8;;;;:15;;;;-1:-1:-1;;3441:1:0;3435:4;3176:15;3425:1;3418:4;3411:5;3407:16;3396:53;3385:64;-1:-1:-1;3385:64:0;3534:20;;;;3519:35;3581:7;3573:37;;;;-1:-1:-1;;;3573:37:0;;3947:2:1;3573:37:0;;;3929:21:1;3986:2;3966:18;;;3959:30;-1:-1:-1;;;4005:18:1;;;3998:48;4063:18;;3573:37:0;3745:342:1;2646::0;-1:-1:-1;;;;;;;;;;;;;;;;;2883:3:0;;2792:77;;2883:8;:20;;;;-1:-1:-1;2895:3:0;;;;:8;2883:20;2879:58;;;-1:-1:-1;;2924:13:0;;;;;;;;;-1:-1:-1;2924:13:0;;;;;;;;2646:342;-1:-1:-1;2646:342:0:o;2879:58::-;2954:27;;;;;;;;2962:1;:3;;;2954:27;;;;2978:1;2972;:3;;;:7;;;;:::i;:::-;2967:13;;:1;:13;:::i;:::-;2954:27;;2947:34;2646:342;-1:-1:-1;;;2646:342:0:o;6566:552::-;6855:16;;;6869:1;6855:16;;;;;;;;;6817:4;;;;6855:16;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;6855:16:0;;;;;;;;;;;;-1:-1:-1;;6903:16:0;;;6917:1;6903:16;;;;;;;;;6833:38;;-1:-1:-1;6881:19:0;;6903:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6881:38;;6937:2;6929;6932:1;6929:5;;;;;;;;:::i;:::-;;;;;;:10;;;;6957:2;6949;6952:1;6949:5;;;;;;;;:::i;:::-;;;;;;:10;;;;6977:2;6969;6972:1;6969:5;;;;;;;;:::i;:::-;;;;;;:10;;;;6997:2;6989;6992:1;6989:5;;;;;;;;:::i;:::-;;;;;;:10;;;;7017:2;7009;7012:1;7009:5;;;;;;;;:::i;:::-;;;;;;:10;;;;7037:2;7029;7032:1;7029:5;;;;;;;;:::i;:::-;;;;;;:10;;;;7057:2;7049;7052:1;7049:5;;;;;;;;:::i;:::-;;;;;;:10;;;;7077:2;7069;7072:1;7069:5;;;;;;;;:::i;:::-;;;;;;:10;;;;7096:15;7104:2;7108;7096:7;:15::i;:::-;7089:22;6566:552;-1:-1:-1;;;;;;;;;;;6566:552:0:o;4522:1036::-;4604:4;4641:2;:9;4628:2;:9;:22;4620:56;;;;-1:-1:-1;;;4620:56:0;;4638:2:1;4620:56:0;;;:21:1;4677:2;4657:18;;;4650:30;-1:-1:-1;;;4696:18:1;;;4689:52;4758:18;;4620:56:0;4436:346:1;4620:56:0;4702:9;;4686:13;4738:12;4702:9;4749:1;4738:12;:::i;:::-;4721:29;;4760:19;4793:9;4782:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4782:21:0;;4760:43;;4818:6;4813:307;4834:8;4830:1;:12;4813:307;;;4890:2;4893:1;4890:5;;;;;;;;:::i;:::-;;;;;;;:7;;;4871:5;4877:1;4881;4877:5;;;;:::i;:::-;:9;;4885:1;4877:9;:::i;:::-;4871:16;;;;;;;;:::i;:::-;;;;;;:26;;;;;4930:2;4933:1;4930:5;;;;;;;;:::i;:::-;;;;;;;:7;;;4911:5;4917:1;4921;4917:5;;;;:::i;:::-;:9;;4925:1;4917:9;:::i;:::-;4911:16;;;;;;;;:::i;:::-;;;;;;:26;;;;;4970:2;4973:1;4970:5;;;;;;;;:::i;:::-;;;;;;;;;;;:7;:10;4951:5;4957;:1;4961;4957:5;:::i;:::-;:9;;4965:1;4957:9;:::i;:::-;4951:16;;;;;;;;:::i;:::-;;;;;;:29;;;;;5013:2;5016:1;5013:5;;;;;;;;:::i;:::-;;;;;;;;;;;;:7;:10;;4994:5;5000;:1;5004;5000:5;:::i;:::-;:9;;5008:1;5000:9;:::i;:::-;4994:16;;;;;;;;:::i;:::-;;;;;;:29;;;;;5056:2;5059:1;5056:5;;;;;;;;:::i;:::-;;;;;;;:7;;;5064:1;5056:10;;;;;;;:::i;:::-;;;;;5037:5;5043;:1;5047;5043:5;:::i;:::-;:9;;5051:1;5043:9;:::i;:::-;5037:16;;;;;;;;:::i;:::-;;;;;;:29;;;;;5099:2;5102:1;5099:5;;;;;;;;:::i;:::-;;;;;;;:7;;;5107:1;5099:10;;;;;;;:::i;:::-;;;;;5080:5;5086;:1;5090;5086:5;:::i;:::-;:9;;5094:1;5086:9;:::i;:::-;5080:16;;;;;;;;:::i;:::-;;;;;;;;;;:29;4844:3;;;;:::i;:::-;;;;4813:307;;;;5129:18;;:::i;:::-;5157:12;5354:4;5349:3;5342:4;5331:9;5327:20;5320:4;5313:5;5309:16;5306:1;5299:4;5292:5;5288:16;5277:82;5266:93;-1:-1:-1;5266:93:0;5444:20;;;;5429:35;5491:7;5483:40;;;;-1:-1:-1;;;5483:40:0;;5162:2:1;5483:40:0;;;5144:21:1;5201:2;5181:18;;;5174:30;-1:-1:-1;;;5220:18:1;;;5213:51;5281:18;;5483:40:0;4960:345:1;5483:40:0;-1:-1:-1;5540:6:0;:11;;;;-1:-1:-1;;;;;;4522:1036:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:343;213:2;207:9;;;243:15;;288:18;273:34;;309:22;;;270:62;267:185;;;374:10;369:3;365:20;362:1;355:31;409:4;406:1;399:15;437:4;434:1;427:15;267:185;468:2;461:22;146:343;:::o;494:479::-;544:5;597:3;590:4;582:6;578:17;574:27;564:55;;615:1;612;605:12;564:55;639:17;;:::i;:::-;678:3;716:2;708:6;704:15;742:3;734:6;731:15;728:35;;;759:1;756;749:12;728:35;783:6;798:146;814:6;809:3;806:15;798:146;;;882:17;;870:30;;929:4;920:14;;;;831;798:146;;;-1:-1:-1;962:5:1;;494:479;-1:-1:-1;;;;;494:479:1:o;978:979::-;1179:6;1187;1195;1203;1256:3;1244:9;1235:7;1231:23;1227:33;1224:53;;;1273:1;1270;1263:12;1224:53;1296:44;1332:7;1321:9;1296:44;:::i;:::-;1286:54;;1359:2;1404:7;1399:2;1388:9;1384:18;1380:32;1370:60;;1426:1;1423;1416:12;1370:60;1450:17;;:::i;:::-;1489:3;1530;1519:9;1515:19;1557:7;1549:6;1546:19;1543:39;;;1578:1;1575;1568:12;1543:39;1617:2;1606:9;1602:18;1629:165;1645:6;1640:3;1637:15;1629:165;;;1711:38;1741:7;1736:3;1711:38;:::i;:::-;1699:51;;1779:4;1770:14;;;;1662:12;;1629:165;;;1633:3;1813:5;1803:15;;1837:41;1870:7;1862:6;1837:41;:::i;:::-;1827:51;;;;;;1897:54;1943:7;1937:3;1926:9;1922:19;1897:54;:::i;:::-;1887:64;;978:979;;;;;;;:::o;2154:127::-;2215:10;2210:3;2206:20;2203:1;2196:31;2246:4;2243:1;2236:15;2270:4;2267:1;2260:15;2286:127;2347:10;2342:3;2338:20;2335:1;2328:31;2378:4;2375:1;2368:15;2402:4;2399:1;2392:15;2418:135;2457:3;-1:-1:-1;;2478:17:1;;2475:43;;;2498:18;;:::i;:::-;-1:-1:-1;2545:1:1;2534:13;;2418:135::o;2558:128::-;2598:3;2629:1;2625:6;2622:1;2619:13;2616:39;;;2635:18;;:::i;:::-;-1:-1:-1;2671:9:1;;2558:128::o;4092:209::-;4124:1;4150;4140:132;;4194:10;4189:3;4185:20;4182:1;4175:31;4229:4;4226:1;4219:15;4257:4;4254:1;4247:15;4140:132;-1:-1:-1;4286:9:1;;4092:209::o;4306:125::-;4346:4;4374:1;4371;4368:8;4365:34;;;4379:18;;:::i;:::-;-1:-1:-1;4416:9:1;;4306:125::o;4787:168::-;4827:7;4893:1;4889;4885:6;4881:14;4878:1;4875:21;4870:1;4863:9;4856:17;4852:45;4849:71;;;4900:18;;:::i;:::-;-1:-1:-1;4940:9:1;;4787:168::o"},"methodIdentifiers":{"verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[2])":"f5c9d69e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"a\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"b\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"c\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"input\",\"type\":\"uint256[2]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"r\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[2])\":{\"returns\":{\"r\":\" bool true if proof is valid\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/mockVerifier.sol\":\"MockVerifier\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/mocks/mockVerifier.sol\":{\"keccak256\":\"0x954d89110841fb7de129b3d401cfc1af55539730106ae12dfd840d51374ad17d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9c54e01b55a577c195e647dc78c702192e9dc305bc01c12a0f04bbee6c1330fc\",\"dweb:/ipfs/QmaCxHKXhyapmxF1XNjYrBaUpZqZsucGpCjHPbxKSYV3aZ\"]}},\"version\":1}"},"Pairing":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200173dfd0e982e95149cf99ef9992cd3285329c3c975af98601c31513f942281264736f6c634300080a0033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADD PUSH20 0xDFD0E982E95149CF99EF9992CD3285329C3C975A 0xF9 DUP7 ADD 0xC3 ISZERO SGT 0xF9 TIMESTAMP 0x28 SLT PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"1257:5863:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1257:5863:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200173dfd0e982e95149cf99ef9992cd3285329c3c975af98601c31513f942281264736f6c634300080a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADD PUSH20 0xDFD0E982E95149CF99EF9992CD3285329C3C975A 0xF9 DUP7 ADD 0xC3 ISZERO SGT 0xF9 TIMESTAMP 0x28 SLT PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ","sourceMap":"1257:5863:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/mocks/mockVerifier.sol\":\"Pairing\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/mocks/mockVerifier.sol\":{\"keccak256\":\"0x954d89110841fb7de129b3d401cfc1af55539730106ae12dfd840d51374ad17d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9c54e01b55a577c195e647dc78c702192e9dc305bc01c12a0f04bbee6c1330fc\",\"dweb:/ipfs/QmaCxHKXhyapmxF1XNjYrBaUpZqZsucGpCjHPbxKSYV3aZ\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/packages/actions/artifacts/contracts/mocks/mockVerifier.sol/MockVerifier.dbg.json b/packages/actions/artifacts/contracts/mocks/mockVerifier.sol/MockVerifier.dbg.json deleted file mode 100644 index f948786c..00000000 --- a/packages/actions/artifacts/contracts/mocks/mockVerifier.sol/MockVerifier.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/98e7adc4ae6272c772cd9568997f96ea.json" -} diff --git a/packages/actions/artifacts/contracts/mocks/mockVerifier.sol/MockVerifier.json b/packages/actions/artifacts/contracts/mocks/mockVerifier.sol/MockVerifier.json deleted file mode 100644 index d3e1cac5..00000000 --- a/packages/actions/artifacts/contracts/mocks/mockVerifier.sol/MockVerifier.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "MockVerifier", - "sourceName": "contracts/mocks/mockVerifier.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256[2]", - "name": "a", - "type": "uint256[2]" - }, - { - "internalType": "uint256[2][2]", - "name": "b", - "type": "uint256[2][2]" - }, - { - "internalType": "uint256[2]", - "name": "c", - "type": "uint256[2]" - }, - { - "internalType": "uint256[2]", - "name": "input", - "type": "uint256[2]" - } - ], - "name": "verifyProof", - "outputs": [ - { - "internalType": "bool", - "name": "r", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50611123806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f5c9d69e14610030575b600080fd5b61004361003e366004610f96565b610057565b604051901515815260200160405180910390f35b6000610061610dbf565b60408051808201825287518152602080890151818301529083528151608081018352875151818401908152885183015160608084019190915290825283518085018552898401805151825251840151818501528284015284830191909152825180840184528751815287830151818401528484015282516002808252918101845260009390928301908036833701905050905060005b60028110156101465784816002811061011257610112611036565b602002015182828151811061012957610129611036565b60209081029190910101528061013e81611062565b9150506100f7565b50610151818361016f565b61016057600192505050610167565b6000925050505b949350505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018161019b610366565b9050806080015151855160016101b1919061107d565b146101f85760405162461bcd60e51b81526020600482015260126024820152711d995c9a599a595c8b5898590b5a5b9c1d5d60721b60448201526064015b60405180910390fd5b604080518082019091526000808252602082018190525b86518110156102e9578387828151811061022b5761022b611036565b6020026020010151106102805760405162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c640060448201526064016101ef565b6102d5826102d08560800151846001610299919061107d565b815181106102a9576102a9611036565b60200260200101518a85815181106102c3576102c3611036565b602002602001015161070a565b6107a6565b9150806102e181611062565b91505061020f565b5061031281836080015160008151811061030557610305611036565b60200260200101516107a6565b9050610348610324866000015161083e565b8660200151846000015185602001518587604001518b6040015189606001516108dd565b6103585760019350505050610360565b600093505050505b92915050565b61036e610e10565b6040805180820182527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e281527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266020808301919091529083528151608080820184527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c8285019081527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab606080850191909152908352845180860186527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a781527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8818601528385015285840192909252835180820185527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28186018181527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed838601819052908352865180880188527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b8082527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa828901819052858901929092528989019490945287518086018952808901938452808701929092529181528651808801885292835282860191909152938401529084019190915281516003808252918101909252816020015b604080518082019091526000808252602082015281526020019060019003908161057b57505060808201908152604080518082019091527f0f13deecd2bb97a4a72138125f42fb6cf7a7d268c07b6be71ea235c128ec8b0d81527f141a084ea96151edd848da5554d22ffe50108204685faf2953c88cc5ecd13afc60208201529051805160009061060e5761060e611036565b602002602001018190525060405180604001604052807f0584139dea87bfc802b78d16336c5507427cdbd3b485ed93311612dd9dae56b981526020017f0ca856036d046756064d3e3efb84c27f6d3589ab9e8f9363905e5a9238649310815250816080015160018151811061068557610685611036565b602002602001018190525060405180604001604052807f06851ff62db30413d0be9360cdbb12813682741de8743b6f6e72bebf376dffd981526020017f1fcc740e777501125b58a260a9d9a31bead97d19585568f490c98960091433f681525081608001516002815181106106fc576106fc611036565b602002602001018190525090565b6040805180820190915260008082526020820152610726610e61565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080156107595761075b565bfe5b508061079e5760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b60448201526064016101ef565b505092915050565b60408051808201909152600080825260208201526107c2610e7f565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa905080801561075957508061079e5760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b60448201526064016101ef565b604080518082019091526000808252602082015281517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479015801561088557506020830151155b156108a55750506040805180820190915260008082526020820152919050565b6040518060400160405280846000015181526020018285602001516108ca9190611095565b6108d490846110b7565b90529392505050565b60408051600480825260a08201909252600091829190816020015b60408051808201909152600080825260208201528152602001906001900390816108f857505060408051600480825260a0820190925291925060009190602082015b610942610e9d565b81526020019060019003908161093a5790505090508a8260008151811061096b5761096b611036565b6020026020010181905250888260018151811061098a5761098a611036565b602002602001018190525086826002815181106109a9576109a9611036565b602002602001018190525084826003815181106109c8576109c8611036565b602002602001018190525089816000815181106109e7576109e7611036565b60200260200101819052508781600181518110610a0657610a06611036565b60200260200101819052508581600281518110610a2557610a25611036565b60200260200101819052508381600381518110610a4457610a44611036565b6020026020010181905250610a598282610a68565b9b9a5050505050505050505050565b60008151835114610ab45760405162461bcd60e51b81526020600482015260166024820152751c185a5c9a5b99cb5b195b99dd1a1ccb59985a5b195960521b60448201526064016101ef565b82516000610ac38260066110ce565b905060008167ffffffffffffffff811115610ae057610ae0610ef9565b604051908082528060200260200182016040528015610b09578160200160208202803683370190505b50905060005b83811015610d4457868181518110610b2957610b29611036565b60200260200101516000015182826006610b4391906110ce565b610b4e90600061107d565b81518110610b5e57610b5e611036565b602002602001018181525050868181518110610b7c57610b7c611036565b60200260200101516020015182826006610b9691906110ce565b610ba190600161107d565b81518110610bb157610bb1611036565b602002602001018181525050858181518110610bcf57610bcf611036565b6020908102919091010151515182610be88360066110ce565b610bf390600261107d565b81518110610c0357610c03611036565b602002602001018181525050858181518110610c2157610c21611036565b60209081029190910181015151015182610c3c8360066110ce565b610c4790600361107d565b81518110610c5757610c57611036565b602002602001018181525050858181518110610c7557610c75611036565b602002602001015160200151600060028110610c9357610c93611036565b602002015182610ca48360066110ce565b610caf90600461107d565b81518110610cbf57610cbf611036565b602002602001018181525050858181518110610cdd57610cdd611036565b602002602001015160200151600160028110610cfb57610cfb611036565b602002015182610d0c8360066110ce565b610d1790600561107d565b81518110610d2757610d27611036565b602090810291909101015280610d3c81611062565b915050610b0f565b50610d4d610ebd565b6000602082602086026020860160086107d05a03fa9050808015610759575080610db15760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016101ef565b505115159695505050505050565b6040805160a081019091526000606082018181526080830191909152815260208101610de9610e9d565b8152602001610e0b604051806040016040528060008152602001600081525090565b905290565b6040805160e08101909152600060a0820181815260c0830191909152815260208101610e3a610e9d565b8152602001610e47610e9d565b8152602001610e54610e9d565b8152602001606081525090565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280610eb0610edb565b8152602001610e0b610edb565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610f4057634e487b7160e01b600052604160045260246000fd5b60405290565b600082601f830112610f5757600080fd5b610f5f610f0f565b806040840185811115610f7157600080fd5b845b81811015610f8b578035845260209384019301610f73565b509095945050505050565b6000806000806101408587031215610fad57600080fd5b610fb78686610f46565b9350604086605f870112610fca57600080fd5b610fd2610f0f565b8060c0880189811115610fe457600080fd5b8389015b8181101561100957610ffa8b82610f46565b84526020909301928401610fe8565b508196506110178a82610f46565b95505050505061102b866101008701610f46565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156110765761107661104c565b5060010190565b600082198211156110905761109061104c565b500190565b6000826110b257634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156110c9576110c961104c565b500390565b60008160001904831182151516156110e8576110e861104c565b50029056fea26469706673582212201f2defe83f0fecceb9b59f3594b99edc189c4f3b137fbeb3d2dfd46aad30610a64736f6c634300080a0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f5c9d69e14610030575b600080fd5b61004361003e366004610f96565b610057565b604051901515815260200160405180910390f35b6000610061610dbf565b60408051808201825287518152602080890151818301529083528151608081018352875151818401908152885183015160608084019190915290825283518085018552898401805151825251840151818501528284015284830191909152825180840184528751815287830151818401528484015282516002808252918101845260009390928301908036833701905050905060005b60028110156101465784816002811061011257610112611036565b602002015182828151811061012957610129611036565b60209081029190910101528061013e81611062565b9150506100f7565b50610151818361016f565b61016057600192505050610167565b6000925050505b949350505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018161019b610366565b9050806080015151855160016101b1919061107d565b146101f85760405162461bcd60e51b81526020600482015260126024820152711d995c9a599a595c8b5898590b5a5b9c1d5d60721b60448201526064015b60405180910390fd5b604080518082019091526000808252602082018190525b86518110156102e9578387828151811061022b5761022b611036565b6020026020010151106102805760405162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c640060448201526064016101ef565b6102d5826102d08560800151846001610299919061107d565b815181106102a9576102a9611036565b60200260200101518a85815181106102c3576102c3611036565b602002602001015161070a565b6107a6565b9150806102e181611062565b91505061020f565b5061031281836080015160008151811061030557610305611036565b60200260200101516107a6565b9050610348610324866000015161083e565b8660200151846000015185602001518587604001518b6040015189606001516108dd565b6103585760019350505050610360565b600093505050505b92915050565b61036e610e10565b6040805180820182527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e281527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266020808301919091529083528151608080820184527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c8285019081527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab606080850191909152908352845180860186527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a781527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8818601528385015285840192909252835180820185527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28186018181527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed838601819052908352865180880188527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b8082527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa828901819052858901929092528989019490945287518086018952808901938452808701929092529181528651808801885292835282860191909152938401529084019190915281516003808252918101909252816020015b604080518082019091526000808252602082015281526020019060019003908161057b57505060808201908152604080518082019091527f0f13deecd2bb97a4a72138125f42fb6cf7a7d268c07b6be71ea235c128ec8b0d81527f141a084ea96151edd848da5554d22ffe50108204685faf2953c88cc5ecd13afc60208201529051805160009061060e5761060e611036565b602002602001018190525060405180604001604052807f0584139dea87bfc802b78d16336c5507427cdbd3b485ed93311612dd9dae56b981526020017f0ca856036d046756064d3e3efb84c27f6d3589ab9e8f9363905e5a9238649310815250816080015160018151811061068557610685611036565b602002602001018190525060405180604001604052807f06851ff62db30413d0be9360cdbb12813682741de8743b6f6e72bebf376dffd981526020017f1fcc740e777501125b58a260a9d9a31bead97d19585568f490c98960091433f681525081608001516002815181106106fc576106fc611036565b602002602001018190525090565b6040805180820190915260008082526020820152610726610e61565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080156107595761075b565bfe5b508061079e5760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b60448201526064016101ef565b505092915050565b60408051808201909152600080825260208201526107c2610e7f565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa905080801561075957508061079e5760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b60448201526064016101ef565b604080518082019091526000808252602082015281517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479015801561088557506020830151155b156108a55750506040805180820190915260008082526020820152919050565b6040518060400160405280846000015181526020018285602001516108ca9190611095565b6108d490846110b7565b90529392505050565b60408051600480825260a08201909252600091829190816020015b60408051808201909152600080825260208201528152602001906001900390816108f857505060408051600480825260a0820190925291925060009190602082015b610942610e9d565b81526020019060019003908161093a5790505090508a8260008151811061096b5761096b611036565b6020026020010181905250888260018151811061098a5761098a611036565b602002602001018190525086826002815181106109a9576109a9611036565b602002602001018190525084826003815181106109c8576109c8611036565b602002602001018190525089816000815181106109e7576109e7611036565b60200260200101819052508781600181518110610a0657610a06611036565b60200260200101819052508581600281518110610a2557610a25611036565b60200260200101819052508381600381518110610a4457610a44611036565b6020026020010181905250610a598282610a68565b9b9a5050505050505050505050565b60008151835114610ab45760405162461bcd60e51b81526020600482015260166024820152751c185a5c9a5b99cb5b195b99dd1a1ccb59985a5b195960521b60448201526064016101ef565b82516000610ac38260066110ce565b905060008167ffffffffffffffff811115610ae057610ae0610ef9565b604051908082528060200260200182016040528015610b09578160200160208202803683370190505b50905060005b83811015610d4457868181518110610b2957610b29611036565b60200260200101516000015182826006610b4391906110ce565b610b4e90600061107d565b81518110610b5e57610b5e611036565b602002602001018181525050868181518110610b7c57610b7c611036565b60200260200101516020015182826006610b9691906110ce565b610ba190600161107d565b81518110610bb157610bb1611036565b602002602001018181525050858181518110610bcf57610bcf611036565b6020908102919091010151515182610be88360066110ce565b610bf390600261107d565b81518110610c0357610c03611036565b602002602001018181525050858181518110610c2157610c21611036565b60209081029190910181015151015182610c3c8360066110ce565b610c4790600361107d565b81518110610c5757610c57611036565b602002602001018181525050858181518110610c7557610c75611036565b602002602001015160200151600060028110610c9357610c93611036565b602002015182610ca48360066110ce565b610caf90600461107d565b81518110610cbf57610cbf611036565b602002602001018181525050858181518110610cdd57610cdd611036565b602002602001015160200151600160028110610cfb57610cfb611036565b602002015182610d0c8360066110ce565b610d1790600561107d565b81518110610d2757610d27611036565b602090810291909101015280610d3c81611062565b915050610b0f565b50610d4d610ebd565b6000602082602086026020860160086107d05a03fa9050808015610759575080610db15760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016101ef565b505115159695505050505050565b6040805160a081019091526000606082018181526080830191909152815260208101610de9610e9d565b8152602001610e0b604051806040016040528060008152602001600081525090565b905290565b6040805160e08101909152600060a0820181815260c0830191909152815260208101610e3a610e9d565b8152602001610e47610e9d565b8152602001610e54610e9d565b8152602001606081525090565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280610eb0610edb565b8152602001610e0b610edb565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610f4057634e487b7160e01b600052604160045260246000fd5b60405290565b600082601f830112610f5757600080fd5b610f5f610f0f565b806040840185811115610f7157600080fd5b845b81811015610f8b578035845260209384019301610f73565b509095945050505050565b6000806000806101408587031215610fad57600080fd5b610fb78686610f46565b9350604086605f870112610fca57600080fd5b610fd2610f0f565b8060c0880189811115610fe457600080fd5b8389015b8181101561100957610ffa8b82610f46565b84526020909301928401610fe8565b508196506110178a82610f46565b95505050505061102b866101008701610f46565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156110765761107661104c565b5060010190565b600082198211156110905761109061104c565b500190565b6000826110b257634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156110c9576110c961104c565b500390565b60008160001904831182151516156110e8576110e861104c565b50029056fea26469706673582212201f2defe83f0fecceb9b59f3594b99edc189c4f3b137fbeb3d2dfd46aad30610a64736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/actions/artifacts/contracts/mocks/mockVerifier.sol/Pairing.dbg.json b/packages/actions/artifacts/contracts/mocks/mockVerifier.sol/Pairing.dbg.json deleted file mode 100644 index f948786c..00000000 --- a/packages/actions/artifacts/contracts/mocks/mockVerifier.sol/Pairing.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/98e7adc4ae6272c772cd9568997f96ea.json" -} diff --git a/packages/actions/artifacts/contracts/mocks/mockVerifier.sol/Pairing.json b/packages/actions/artifacts/contracts/mocks/mockVerifier.sol/Pairing.json deleted file mode 100644 index fdca3017..00000000 --- a/packages/actions/artifacts/contracts/mocks/mockVerifier.sol/Pairing.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Pairing", - "sourceName": "contracts/mocks/mockVerifier.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200173dfd0e982e95149cf99ef9992cd3285329c3c975af98601c31513f942281264736f6c634300080a0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200173dfd0e982e95149cf99ef9992cd3285329c3c975af98601c31513f942281264736f6c634300080a0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/actions/test/data/samples.ts b/packages/actions/test/data/samples.ts index 2b93374d..7c75e329 100644 --- a/packages/actions/test/data/samples.ts +++ b/packages/actions/test/data/samples.ts @@ -7,8 +7,6 @@ import { } from "../../src/types/enums" import { generateFakeUser, generateFakeCeremony, generateFakeParticipant, generateFakeCircuit } from "./generators" -export const finalizationBeacon = "1234567890" - const fakeUser1 = generateFakeUser({ uid: "0000000000000000000000000001", data: { diff --git a/packages/actions/test/unit/verification.test.ts b/packages/actions/test/unit/verification.test.ts index 82a199f9..2a8ceb04 100644 --- a/packages/actions/test/unit/verification.test.ts +++ b/packages/actions/test/unit/verification.test.ts @@ -14,7 +14,7 @@ import { } from "../../src" import { envType } from "../utils" import { TestingEnvironment } from "../../src/types/enums" -import { fakeUsersData, finalizationBeacon } from "../data/samples" +import { fakeUsersData } from "../data/samples" chai.use(chaiAsPromised) dotenv.config() @@ -23,6 +23,8 @@ dotenv.config() * Unit test for Verification utilities. */ describe("Verification utilities", () => { + const finalizationBeacon = "1234567890" + let wasmPath: string = "" let zkeyPath: string = "" let badzkeyPath: string = ""